[Spice-devel] [PATCH spice 4/4] client: change monitor mode setting <-> fullscreen window mode setting order

Hans de Goede hdegoede at redhat.com
Sun Oct 17 02:46:20 PDT 2010


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 likely also fixes the window
   not always being shown on top when going from fullscreen -> windowed in
   kde (still need to test)
---
 client/application.cpp |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/client/application.cpp b/client/application.cpp
index c5d34ff..e828968 100644
--- a/client/application.cpp
+++ b/client/application.cpp
@@ -660,9 +660,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();
@@ -1499,6 +1499,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;
@@ -1509,7 +1510,6 @@ void Application::exit_full_screen()
             }
         }
     }
-    restore_monitors();
     _full_screen = false;
     restore_screens_size();
     show();
-- 
1.7.3.1



More information about the Spice-devel mailing list