client: change monitor mode setting <-> fullscreen window mode setting order

1) Make the order when starting up in fullscreen mode the same as when
   switching from window -> fullscreen:
   First set the mode, then make the window fullscreen
2) Change the order when leaving fullscreen mode, first restore the original
   monitor mode, then make the window non fullscreen. Changing the monitor
   mode in X11 causes the window manager to re-arrange windows, and if this
   happens while compiz is busy mapping the window it gets confused and
   maps the window with a maxmimized size.
This commit is contained in:
Hans de Goede 2010-10-17 11:38:08 +02:00
parent 0b07ca2775
commit 421ddb7422

View File

@ -673,9 +673,9 @@ RedScreen* Application::get_screen(int id)
mon = get_monitor(id);
capture = release_capture();
screen->set_monitor(mon);
prepare_monitors();
position_screens();
screen->show_full_screen();
prepare_monitors();
if (capture) {
_main_screen->activate();
@ -1529,6 +1529,7 @@ void Application::exit_full_screen()
LOG_INFO("");
_changing_screens = true;
release_capture();
restore_monitors();
for (int i = 0; i < (int)_screens.size(); i++) {
if (_screens[i]) {
Monitor* mon;
@ -1539,7 +1540,6 @@ void Application::exit_full_screen()
}
}
}
restore_monitors();
_full_screen = false;
restore_screens_size();
show();