From 05a3f82a5c385e7f00aa2bb8c1971e1cc99225a3 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Thu, 22 Jan 2026 14:27:13 +0100 Subject: Fix "Setting window custom cursor from SVG image crashes" (#1363) --- src/Fl_x.cxx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/Fl_x.cxx') diff --git a/src/Fl_x.cxx b/src/Fl_x.cxx index c690e750b..2afa2e9ae 100644 --- a/src/Fl_x.cxx +++ b/src/Fl_x.cxx @@ -3142,11 +3142,13 @@ int Fl_X11_Window_Driver::set_cursor(const Fl_RGB_Image *image, int hotx, int ho if ((hoty < 0) || (hoty >= image->h())) return 0; - cursor = XcursorImageCreate(image->w(), image->h()); + float s = image->as_svg_image() ? Fl::screen_scale(pWindow->screen_num()) : 1; + cursor = XcursorImageCreate(image->w() * s, image->h() * s); if (!cursor) return 0; - image = (Fl_RGB_Image*)image->copy(); + image = (Fl_RGB_Image*)image->copy(image->w() * s, image->h() * s); + ((Fl_RGB_Image*)image)->normalize(); const int extra_data = image->ld() ? (image->ld()-image->w()*image->d()) : 0; const uchar *i = (const uchar*)*image->data(); XcursorPixel *o = cursor->pixels; -- cgit v1.2.3