diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2019-02-09 16:28:26 +0100 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2019-02-09 16:28:26 +0100 |
| commit | 2c12bf4e1ab93d84a3f6677b7561a1ce4e419f75 (patch) | |
| tree | a4efd57e6421dfa6e39a2899ca30ac7752947bc5 /src/Fl_x.cxx | |
| parent | 44552f3e6394fb89f764ea06bd70eeddd26318ae (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.cxx | 8 |
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(); |
