]> Dogcows Code - chaz/openbox/blobdiff - openbox/screen.c
super amazing enter event skipping.
[chaz/openbox] / openbox / screen.c
index a265df0aca4a40536089af620f9842acd5608675..5f1991d39b10bd4b6665119ee5624cb01072ee88 100644 (file)
@@ -323,7 +323,8 @@ static void screen_tell_ksplash()
 
     /* tell ksplash through the dcop server command line interface */
     g_spawn_async(NULL, argv, NULL,
-                  G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
+                  G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD |
+                  G_SPAWN_STDERR_TO_DEV_NULL | G_SPAWN_STDOUT_TO_DEV_NULL,
                   NULL, NULL, NULL, NULL);
     g_strfreev(argv);
 
@@ -541,6 +542,7 @@ void screen_set_desktop(guint num, gboolean dofocus)
     ObClient *c;
     GList *it;
     guint old;
+    gulong ignore_start;
      
     g_assert(num < screen_num_desktops);
 
@@ -556,6 +558,9 @@ void screen_set_desktop(guint num, gboolean dofocus)
 
     ob_debug("Moving to desktop %d\n", num+1);
 
+    /* ignore enter events caused by the move */
+    ignore_start = event_start_ignore_all_enters();
+
     if (moveresize_client)
         client_set_desktop(moveresize_client, num, TRUE);
 
@@ -605,7 +610,7 @@ void screen_set_desktop(guint num, gboolean dofocus)
         }
     }
 
-    event_ignore_all_queued_enters();
+    event_end_ignore_all_enters(ignore_start);
 
     if (event_curtime != CurrentTime)
         screen_desktop_user_time = event_curtime;
This page took 0.022906 seconds and 4 git commands to generate.