summaryrefslogtreecommitdiff
path: root/src/drivers/X11/Fl_X11_Window_Driver.cxx
diff options
context:
space:
mode:
authorManolo Gouy <Manolo>2017-07-26 07:45:59 +0000
committerManolo Gouy <Manolo>2017-07-26 07:45:59 +0000
commit4c999258f1c04cf02bd0d28a8e30f3fba4f84776 (patch)
treeb9dedd9279efb5097a1c526a53c4408d7e110910 /src/drivers/X11/Fl_X11_Window_Driver.cxx
parent463b3e5d9d1c34fee5fd3d5151f228435467f3f0 (diff)
X11 platform, resize window when moved across screens: remove hide()/show() calls.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12355 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers/X11/Fl_X11_Window_Driver.cxx')
-rw-r--r--src/drivers/X11/Fl_X11_Window_Driver.cxx12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/drivers/X11/Fl_X11_Window_Driver.cxx b/src/drivers/X11/Fl_X11_Window_Driver.cxx
index f1a6962ac..7928dbba4 100644
--- a/src/drivers/X11/Fl_X11_Window_Driver.cxx
+++ b/src/drivers/X11/Fl_X11_Window_Driver.cxx
@@ -701,15 +701,13 @@ void Fl_X11_Window_Driver::resize_after_screen_change(void *data) {
XGetWindowAttributes(fl_display, fl_xid(win), &actual);
Window cr;
XTranslateCoordinates(fl_display, fl_xid(win), actual.root, 0, 0, &oldx, &oldy, &cr);
- win->hide();
float f = Fl::screen_driver()->scale(data_for_resize_window_between_screens_.screen);
Fl_X11_Window_Driver::driver(win)->screen_num(data_for_resize_window_between_screens_.screen);
- win->position(oldx/f, oldy/f);
- win->driver()->force_position(1);
- Fl_Xlib_Graphics_Driver *d = (Fl_Xlib_Graphics_Driver*)Fl_Display_Device::display_device()->driver();
- d->scale(f);
- win->show();
- win->wait_for_expose();
+ Fl_Display_Device::display_device()->driver()->scale(f);
+ in_resize_after_scale_change = true;
+ win->driver()->size_range();
+ win->resize(oldx/f, oldy/f, win->w(), win->h());
+ in_resize_after_scale_change = false;
data_for_resize_window_between_screens_.busy = false;
}