From 2c12bf4e1ab93d84a3f6677b7561a1ce4e419f75 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Sat, 9 Feb 2019 16:28:26 +0100 Subject: X11 platform: account for window scaling in drag-n-drop operations. --- src/Fl_x.cxx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/Fl_x.cxx') diff --git a/src/Fl_x.cxx b/src/Fl_x.cxx index f3beb582e..6272f8694 100644 --- a/src/Fl_x.cxx +++ b/src/Fl_x.cxx @@ -1635,8 +1635,12 @@ int fl_handle(const XEvent& thisevent) fl_xmousewin = window; in_a_window = true; fl_dnd_source_window = data[0]; - Fl::e_x_root = data[2]>>16; - Fl::e_y_root = data[2]&0xFFFF; + float s = 1; +#if USE_XFT + if (window) s = Fl::screen_driver()->scale(Fl_Window_Driver::driver(window)->screen_num()); +#endif + Fl::e_x_root = (data[2]>>16)/s; + Fl::e_y_root = (data[2]&0xFFFF)/s; if (window) { Fl::e_x = Fl::e_x_root-window->x(); Fl::e_y = Fl::e_y_root-window->y(); -- cgit v1.2.3