X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=openbox%2Faction.c;h=4fd86d302197dec171acf148c82ce05d2e2792be;hb=ba161e967b8f994e9c786d65c70318571fbf032b;hp=eca4707a32074543dc4884a99a4e6191aecb32a9;hpb=7f58bd9eaaa8285a743be4b7b210568cfe588e3e;p=chaz%2Fopenbox diff --git a/openbox/action.c b/openbox/action.c index eca4707a..4fd86d30 100644 --- a/openbox/action.c +++ b/openbox/action.c @@ -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)