From bced74beaa9ff03e0810ff1d61a3704040841942 Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Sun, 11 Aug 2013 15:47:31 +0200 Subject: [PATCH] Add matching which monitor the client is on in the If action (Bug 5426) --- openbox/actions/if.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/openbox/actions/if.c b/openbox/actions/if.c index 7087d6a4..fd1280d2 100644 --- a/openbox/actions/if.c +++ b/openbox/actions/if.c @@ -29,6 +29,7 @@ typedef struct { gboolean desktop_other; guint desktop_number; guint screendesktop_number; + guint client_monitor; GPatternSpec *matchtitle; GRegex *regextitle; gchar *plaintitle; @@ -107,6 +108,9 @@ static gpointer setup_func(xmlNodePtr node) g_free(s); } } + if ((n = obt_xml_find_node(node, "monitor"))) { + o->client_monitor = obt_xml_node_int(n); + } if ((n = obt_xml_find_node(node, "then"))) { xmlNodePtr m; @@ -192,7 +196,9 @@ static gboolean run_func(ObActionsData *data, gpointer options) (!o->regextitle || (g_regex_match(o->regextitle, c->original_title, 0, NULL))) && (!o->plaintitle || - (!strcmp(o->plaintitle, c->original_title)))) + (!strcmp(o->plaintitle, c->original_title))) && + (!o->client_monitor || + (o->client_monitor == client_monitor(c) + 1))) { acts = o->thenacts; }