X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Faction.c;h=4fd86d302197dec171acf148c82ce05d2e2792be;hb=afc015158aed10491e58a30d66728dffe36f3ae0;hp=5cd39f3d2b56a970326672b6173058fb2d385a3e;hpb=c5d2a9bc98fb7d1ed85c69fc3007ab36b9fd96d5;p=chaz%2Fopenbox diff --git a/openbox/action.c b/openbox/action.c index 5cd39f3d..4fd86d30 100644 --- a/openbox/action.c +++ b/openbox/action.c @@ -1004,8 +1004,6 @@ ObAction *action_parse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, act->func == action_raiselower || act->func == action_shadelower || act->func == action_unshaderaise) { - if ((n = parse_find_node("group", node->xmlChildrenNode))) - act->data.stacking.group = parse_bool(doc, n); } INTERACTIVE_LIMIT(act, uact); } @@ -1111,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, @@ -1151,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); } } @@ -1166,14 +1166,15 @@ void action_focus(union ActionData *data) moving on us */ event_halt_focus_delay(); - client_focus(data->client.any.c); + if (client_validate(data->client.any.c)) + client_focus(data->client.any.c); } } 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) @@ -1221,7 +1222,7 @@ void action_raiselower(union ActionData *data) void action_raise(union ActionData *data) { client_action_start(data); - stacking_raise(CLIENT_AS_WINDOW(data->client.any.c), data->stacking.group); + stacking_raise(CLIENT_AS_WINDOW(data->client.any.c)); client_action_end(data); } @@ -1244,7 +1245,7 @@ void action_shadelower(union ActionData *data) void action_lower(union ActionData *data) { client_action_start(data); - stacking_lower(CLIENT_AS_WINDOW(data->client.any.c), data->stacking.group); + stacking_lower(CLIENT_AS_WINDOW(data->client.any.c)); client_action_end(data); } @@ -1346,28 +1347,35 @@ 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); } void action_maximize_full(union ActionData *data) { client_action_start(data); - client_maximize(data->client.any.c, TRUE, 0, TRUE); + client_maximize(data->client.any.c, TRUE, 0); client_action_end(data); } void action_unmaximize_full(union ActionData *data) { client_action_start(data); - client_maximize(data->client.any.c, FALSE, 0, TRUE); + client_maximize(data->client.any.c, FALSE, 0); client_action_end(data); } @@ -1377,21 +1385,21 @@ void action_toggle_maximize_full(union ActionData *data) client_maximize(data->client.any.c, !(data->client.any.c->max_horz || data->client.any.c->max_vert), - 0, TRUE); + 0); client_action_end(data); } void action_maximize_horz(union ActionData *data) { client_action_start(data); - client_maximize(data->client.any.c, TRUE, 1, TRUE); + client_maximize(data->client.any.c, TRUE, 1); client_action_end(data); } void action_unmaximize_horz(union ActionData *data) { client_action_start(data); - client_maximize(data->client.any.c, FALSE, 1, TRUE); + client_maximize(data->client.any.c, FALSE, 1); client_action_end(data); } @@ -1399,21 +1407,21 @@ void action_toggle_maximize_horz(union ActionData *data) { client_action_start(data); client_maximize(data->client.any.c, - !data->client.any.c->max_horz, 1, TRUE); + !data->client.any.c->max_horz, 1); client_action_end(data); } void action_maximize_vert(union ActionData *data) { client_action_start(data); - client_maximize(data->client.any.c, TRUE, 2, TRUE); + client_maximize(data->client.any.c, TRUE, 2); client_action_end(data); } void action_unmaximize_vert(union ActionData *data) { client_action_start(data); - client_maximize(data->client.any.c, FALSE, 2, TRUE); + client_maximize(data->client.any.c, FALSE, 2); client_action_end(data); } @@ -1421,15 +1429,14 @@ void action_toggle_maximize_vert(union ActionData *data) { client_action_start(data); client_maximize(data->client.any.c, - !data->client.any.c->max_vert, 2, TRUE); + !data->client.any.c->max_vert, 2); client_action_end(data); } void action_toggle_fullscreen(union ActionData *data) { client_action_start(data); - client_fullscreen(data->client.any.c, - !(data->client.any.c->fullscreen), TRUE); + client_fullscreen(data->client.any.c, !(data->client.any.c->fullscreen)); client_action_end(data); } @@ -1627,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) @@ -1641,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)