summaryrefslogtreecommitdiff
path: root/src/Fl_x.cxx
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2019-02-09 16:28:26 +0100
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2019-02-09 16:28:26 +0100
commit2c12bf4e1ab93d84a3f6677b7561a1ce4e419f75 (patch)
treea4efd57e6421dfa6e39a2899ca30ac7752947bc5 /src/Fl_x.cxx
parent44552f3e6394fb89f764ea06bd70eeddd26318ae (diff)
X11 platform: account for window scaling in drag-n-drop operations.
Diffstat (limited to 'src/Fl_x.cxx')
-rw-r--r--src/Fl_x.cxx8
1 files changed, 6 insertions, 2 deletions
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();