diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-09-22 04:17:43 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-09-22 04:17:43 +0000 |
| commit | f595277f1c9c5359fc8a1dc0a0f190333a464779 (patch) | |
| tree | 648c82d4382e3227d3ed3bb853fcc86950382f83 | |
| parent | f791f9a35e016b52295fa733dc21f9d64de6ead1 (diff) | |
add back focusLast
| -rw-r--r-- | openbox/config.c | 4 | ||||
| -rw-r--r-- | openbox/config.h | 3 | ||||
| -rw-r--r-- | 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 */ |
