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:
parent
463b3e5d9d
commit
4c999258f1
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user