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
This commit is contained in:
Manolo Gouy 2017-07-26 07:45:59 +00:00
parent 463b3e5d9d
commit 4c999258f1
2 changed files with 5 additions and 8 deletions

View File

@ -690,7 +690,6 @@ void Fl_WinAPI_Window_Driver::resize_after_screen_change(void *data) {
float old_f = float(r.right)/win->w();
int ns = data_for_resize_window_between_screens_.screen;
win->driver()->resize_after_scale_change(ns, old_f, Fl::screen_driver()->scale(ns));
win->wait_for_expose();
data_for_resize_window_between_screens_.busy = false;
}

View File

@ -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;
}