From 7b2293ee6cde150c4140d92a3df3c5cd80061107 Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Sun, 23 Feb 2020 14:12:31 +0100 Subject: [PATCH] add focusable/nonfocusable to If action --- openbox/actions/if.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/openbox/actions/if.c b/openbox/actions/if.c index ff226e62..682e9903 100644 --- a/openbox/actions/if.c +++ b/openbox/actions/if.c @@ -64,6 +64,8 @@ typedef struct { gboolean locked_off; gboolean focused; gboolean unfocused; + gboolean focusable; + gboolean nonfocusable; gboolean urgent_on; gboolean urgent_off; gboolean decor_off; @@ -189,6 +191,7 @@ static void setup_query(Options* o, xmlNodePtr node, QueryTarget target) { set_bool(node, "fullscreen", &q->fullscreen_on, &q->fullscreen_off); set_bool(node, "locked", &q->locked_on, &q->locked_off); set_bool(node, "focused", &q->focused, &q->unfocused); + set_bool(node, "focusable", &q->focusable, &q->nonfocusable); set_bool(node, "urgent", &q->urgent_on, &q->urgent_off); set_bool(node, "undecorated", &q->decor_off, &q->decor_on); set_bool(node, "omnipresent", &q->omnipresent_on, &q->omnipresent_off); @@ -384,6 +387,11 @@ static gboolean run_func_if(ObActionsData *data, gpointer options) if (q->unfocused) is_true &= query_target != focus_client; + if (q->focusable) + is_true &= query_target->can_focus; + if (q->nonfocusable) + is_true &= !query_target->can_focus; + gboolean is_urgent = query_target->urgent || query_target->demands_attention; if (q->urgent_on) -- 2.34.1