summaryrefslogtreecommitdiff
path: root/src/Fl_x.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Fl_x.cxx')
-rw-r--r--src/Fl_x.cxx6
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;