diff options
author | Hans de Goede <hdegoede@redhat.com> | 2010-10-17 11:38:08 +0200 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2010-10-18 10:40:51 +0200 |
commit | 421ddb7422d676c5bd15f1434203aa6f3b8dc170 (patch) | |
tree | 8913dbe6c7470da91d9454216d991685d248b982 /client | |
parent | 0b07ca2775888a10d64e51fb95425ff932fc4422 (diff) | |
download | spice-421ddb7422d676c5bd15f1434203aa6f3b8dc170.tar.gz spice-421ddb7422d676c5bd15f1434203aa6f3b8dc170.tar.xz spice-421ddb7422d676c5bd15f1434203aa6f3b8dc170.zip |
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.
Diffstat (limited to 'client')
-rw-r--r-- | client/application.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/client/application.cpp b/client/application.cpp index 3aaa3e3a..15916f74 100644 --- a/client/application.cpp +++ b/client/application.cpp @@ -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(); |