diff options
Diffstat (limited to 'src/Fl_x.cxx')
| -rw-r--r-- | src/Fl_x.cxx | 6 |
1 files changed, 4 insertions, 2 deletions
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; |
