]> Dogcows Code - chaz/openbox/blobdiff - openbox/action.c
launch things on the desktop where you ran it.
[chaz/openbox] / openbox / action.c
index eca4707a32074543dc4884a99a4e6191aecb32a9..4fd86d302197dec171acf148c82ce05d2e2792be 100644 (file)
@@ -1109,6 +1109,9 @@ void action_execute(union ActionData *data)
                 env = sn_get_spawn_environment(program,
                                                data->execute.name,
                                                data->execute.icon_name,
+                                               /* launch it on the current
+                                                  desktop */
+                                               screen_desktop,
                                                data->execute.any.time);
                 if (!g_spawn_async(NULL, argv, env, G_SPAWN_SEARCH_PATH |
                                    G_SPAWN_DO_NOT_REAP_CHILD,
@@ -1149,8 +1152,7 @@ void action_activate(union ActionData *data)
            moving on us */
         event_halt_focus_delay();
 
-        client_activate(data->activate.any.c, data->activate.here, TRUE,
-                        data->activate.any.time);
+        client_activate(data->activate.any.c, data->activate.here, TRUE);
     }
 }
 
@@ -1172,7 +1174,7 @@ void action_focus(union ActionData *data)
 void action_unfocus (union ActionData *data)
 {
     if (data->client.any.c == focus_client)
-        focus_fallback(OB_FOCUS_FALLBACK_UNFOCUSING);
+        focus_fallback(FALSE);
 }
 
 void action_iconify(union ActionData *data)
@@ -1345,14 +1347,21 @@ void action_move_relative(union ActionData *data)
 void action_resize_relative(union ActionData *data)
 {
     ObClient *c = data->relative.any.c;
+    gint x, y, ow, w, oh, h, lw, lh;
+
     client_action_start(data);
-    client_move_resize(c,
-                  c->area.x - data->relative.deltaxl * c->size_inc.width,
-                  c->area.y - data->relative.deltayu * c->size_inc.height,
-                  c->area.width + data->relative.deltax  * c->size_inc.width
-                                + data->relative.deltaxl * c->size_inc.width,
-                  c->area.height + data->relative.deltay  * c->size_inc.height
-                                 + data->relative.deltayu * c->size_inc.height);
+
+    x = c->area.x;
+    y = c->area.y;
+    ow = c->area.width;
+    w = ow + data->relative.deltax * c->size_inc.width
+        + data->relative.deltaxl * c->size_inc.width;
+    oh = c->area.height;
+    h = oh + data->relative.deltay * c->size_inc.height
+        + data->relative.deltayu * c->size_inc.height;
+    
+    client_try_configure(c, OB_CORNER_TOPLEFT, &x, &y, &w, &h, &lw, &lh, TRUE);
+    client_move_resize(c, x + (ow - w), y + (oh - h), w, h);
     client_action_end(data);
 }
 
@@ -1625,8 +1634,7 @@ void action_cycle_windows(union ActionData *data)
 
     focus_cycle(data->cycle.forward, data->cycle.linear, data->any.interactive,
                 data->cycle.dialog,
-                data->cycle.inter.final, data->cycle.inter.cancel,
-                data->cycle.inter.any.time);
+                data->cycle.inter.final, data->cycle.inter.cancel);
 }
 
 void action_directional_focus(union ActionData *data)
@@ -1639,8 +1647,7 @@ void action_directional_focus(union ActionData *data)
                             data->any.interactive,
                             data->interdiraction.dialog,
                             data->interdiraction.inter.final,
-                            data->interdiraction.inter.cancel,
-                            data->interdiraction.inter.any.time);
+                            data->interdiraction.inter.cancel);
 }
 
 void action_movetoedge(union ActionData *data)
This page took 0.023852 seconds and 4 git commands to generate.