From f595277f1c9c5359fc8a1dc0a0f190333a464779 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 22 Sep 2003 04:17:43 +0000 Subject: [PATCH] add back focusLast --- openbox/config.c | 4 ++++ openbox/config.h | 3 +++ openbox/focus.c | 5 +++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/openbox/config.c b/openbox/config.c index 0c15b091..6163c12c 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -26,6 +26,7 @@ gboolean config_focus_new; gboolean config_focus_follow; +gboolean config_focus_last; guint config_focus_delay; guint config_focus_raise; @@ -196,6 +197,8 @@ static void parse_focus(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, config_focus_new = parse_bool(doc, n); if ((n = parse_find_node("followMouse", node))) config_focus_follow = parse_bool(doc, n); + if ((n = parse_find_node("focusLast", node))) + config_focus_last = parse_bool(doc, n); if ((n = parse_find_node("focusDelay", node))) config_focus_delay = parse_int(doc, n) * 1000; if ((n = parse_find_node("raiseOnFocus", node))) @@ -479,6 +482,7 @@ void config_startup(ObParseInst *i) { config_focus_new = TRUE; config_focus_follow = FALSE; + config_focus_last = TRUE; config_focus_delay = 0; config_focus_raise = FALSE; diff --git a/openbox/config.h b/openbox/config.h index 582da954..c228871e 100644 --- a/openbox/config.h +++ b/openbox/config.h @@ -30,6 +30,9 @@ struct _ObParseInst; extern gboolean config_focus_new; /*! Focus windows when the mouse enters them */ extern gboolean config_focus_follow; +/*! Should focus stay under the mouse when there is nothing focused or go to + the last used window */ +extern gboolean config_focus_last; /*! Timeout for focusing windows on focus follows mouse, in microseconds */ extern guint config_focus_delay; /*! If windows should automatically be raised when they are focused in diff --git a/openbox/focus.c b/openbox/focus.c index 22036917..541cf010 100644 --- a/openbox/focus.c +++ b/openbox/focus.c @@ -167,8 +167,9 @@ void focus_fallback(ObFocusFallbackType type) */ focus_set_client(NULL); - if (config_focus_follow && focus_under_pointer()) - return; + if (!config_focus_last && config_focus_follow) + if (focus_under_pointer()) + return; if (type == OB_FOCUS_FALLBACK_UNFOCUSING && old) { /* try for transient relations */ -- 2.45.2