summaryrefslogtreecommitdiff
path: root/openbox/actions/focus.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2010-01-08 10:22:30 -0500
committerDana Jansens <danakj@orodu.net>2010-01-08 10:22:30 -0500
commit73575c10ce3ede1637e4f959b56e1f7d5f110b91 (patch)
tree9af1e7061d53dcc62be4000fc206cfcaa71cc4a8 /openbox/actions/focus.c
parent4f414ed0f124fa67b61d347899aa3b30aa0294f1 (diff)
parentf163c46eaf01ced8405fa36a3bf4a5c488f0f5aa (diff)
Merge branch 'backport' into work
Conflicts: Makefile.am openbox/actions/focus.c openbox/config.c openbox/event.c openbox/menuframe.c
Diffstat (limited to 'openbox/actions/focus.c')
-rw-r--r--openbox/actions/focus.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/openbox/actions/focus.c b/openbox/actions/focus.c
index 40c2c80d..8bae49c7 100644
--- a/openbox/actions/focus.c
+++ b/openbox/actions/focus.c
@@ -6,6 +6,7 @@
typedef struct {
gboolean here;
+ gboolean stop_int;
} Options;
static gpointer setup_func(xmlNodePtr node);
@@ -22,9 +23,12 @@ static gpointer setup_func(xmlNodePtr node)
Options *o;
o = g_new0(Options, 1);
+ o->stop_int = TRUE;
if ((n = obt_xml_find_node(node, "here")))
o->here = obt_xml_node_bool(n);
+ if ((n = obt_xml_find_node(node, "stopInteractive")))
+ o->stop_int = obt_xml_node_bool(n);
return o;
}
@@ -44,11 +48,17 @@ static gboolean run_func(ObActionsData *data, gpointer options)
(data->context != OB_FRAME_CONTEXT_CLIENT &&
data->context != OB_FRAME_CONTEXT_FRAME))
{
+ if (o->stop_int)
+ actions_interactive_cancel_act();
+
actions_client_move(data, TRUE);
client_activate(data->client, TRUE, o->here, FALSE, FALSE, TRUE);
actions_client_move(data, FALSE);
}
} else if (data->context == OB_FRAME_CONTEXT_DESKTOP) {
+ if (o->stop_int)
+ actions_interactive_cancel_act();
+
/* focus action on the root window. make keybindings work for this
openbox instance, but don't focus any specific client */
focus_nothing();