X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Faction.c;h=4e3b83ba9cec36724437b106bffd4ac79f48f964;hb=a098c2437e96d58c647559b46278bc92954e9bbe;hp=6668ac5af22e4a4e1bd1536384089a6d9262a2ee;hpb=99d0b716776492c1927b8248375ce82a33bc7b26;p=chaz%2Fopenbox diff --git a/openbox/action.c b/openbox/action.c index 6668ac5a..4e3b83ba 100644 --- a/openbox/action.c +++ b/openbox/action.c @@ -334,6 +334,11 @@ ActionString actionstrings[] = action_iconify, NULL }, + { + "raiselower", + action_raiselower, + NULL + }, { "raise", action_raise, @@ -716,6 +721,9 @@ ObAction *action_parse(xmlDocPtr doc, xmlNodePtr node) } else if (act->func == action_send_to_desktop_dir) { if ((n = parse_find_node("wrap", node->xmlChildrenNode))) act->data.sendtodir.wrap = parse_bool(doc, n); + } else if (act->func == action_activate) { + if ((n = parse_find_node("here", node->xmlChildrenNode))) + act->data.activate.here = parse_bool(doc, n); } } g_free(actname); @@ -742,8 +750,8 @@ void action_execute(union ActionData *data) void action_activate(union ActionData *data) { - if (data->client.c) - client_activate(data->client.c); + if (data->activate.c) + client_activate(data->activate.c, data->activate.here); } void action_focus(union ActionData *data) @@ -764,6 +772,16 @@ void action_iconify(union ActionData *data) client_iconify(data->client.c, TRUE, TRUE); } +void action_raiselower(union ActionData *data) +{ + if (data->client.c) { + if (data->client.c->frame->obscured) + stacking_raise(CLIENT_AS_WINDOW(data->client.c)); + else + stacking_lower(CLIENT_AS_WINDOW(data->client.c)); + } +} + void action_raise(union ActionData *data) { if (data->client.c) @@ -1219,7 +1237,7 @@ void action_directional_focus(union ActionData *data) return; if ((nf = client_find_directional(data->diraction.c, data->diraction.direction))) - client_activate(nf); + client_activate(nf, FALSE); } void action_movetoedge(union ActionData *data)