]> Dogcows Code - chaz/openbox/blobdiff - openbox/action.c
fix for circular transiency
[chaz/openbox] / openbox / action.c
index 5cc0bb213dd44debeefd1c0fc81063ec007b9acb..804fe0be76506ba55cf87d9609c6adb9ddf90eac 100644 (file)
@@ -1245,7 +1245,7 @@ void action_unfocus (union ActionData *data)
 void action_iconify(union ActionData *data)
 {
     client_action_start(data);
-    client_iconify(data->client.any.c, TRUE, TRUE);
+    client_iconify(data->client.any.c, TRUE, TRUE, FALSE);
     client_action_end(data);
 }
 
@@ -1545,6 +1545,9 @@ void action_desktop_dir(union ActionData *data)
                              data->desktopdir.inter.any.interactive,
                              data->desktopdir.inter.final,
                              data->desktopdir.inter.cancel);
+    /* only move the desktop when the action is complete. if we switch
+       desktops during the interactive action, focus will move but with
+       NotifyWhileGrabbed and applications don't like that. */
     if (!data->sendtodir.inter.any.interactive ||
         (data->sendtodir.inter.final && !data->sendtodir.inter.cancel))
     {
@@ -1564,6 +1567,9 @@ void action_send_to_desktop_dir(union ActionData *data)
                              data->sendtodir.inter.any.interactive,
                              data->sendtodir.inter.final,
                              data->sendtodir.inter.cancel);
+    /* only move the desktop when the action is complete. if we switch
+       desktops during the interactive action, focus will move but with
+       NotifyWhileGrabbed and applications don't like that. */
     if (!data->sendtodir.inter.any.interactive ||
         (data->sendtodir.inter.final && !data->sendtodir.inter.cancel))
     {
@@ -1900,17 +1906,17 @@ void action_toggle_dockautohide(union ActionData *data)
 
 void action_toggle_show_desktop(union ActionData *data)
 {
-    screen_show_desktop(!screen_showing_desktop, TRUE);
+    screen_show_desktop(!screen_showing_desktop, NULL);
 }
 
 void action_show_desktop(union ActionData *data)
 {
-    screen_show_desktop(TRUE, TRUE);
+    screen_show_desktop(TRUE, NULL);
 }
 
 void action_unshow_desktop(union ActionData *data)
 {
-    screen_show_desktop(FALSE, TRUE);
+    screen_show_desktop(FALSE, NULL);
 }
 
 void action_break_chroot(union ActionData *data)
This page took 0.021245 seconds and 4 git commands to generate.