add back focusLast
authorDana Jansens <danakj@orodu.net>
Mon, 22 Sep 2003 04:17:43 +0000 (04:17 +0000)
committerDana Jansens <danakj@orodu.net>
Mon, 22 Sep 2003 04:17:43 +0000 (04:17 +0000)
openbox/config.c
openbox/config.h
openbox/focus.c

index 0c15b09..6163c12 100644 (file)
@@ -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;
 
index 582da95..c228871 100644 (file)
@@ -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
index 2203691..541cf01 100644 (file)
@@ -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 */