Add FocusFallback action.
authorMikael Magnusson <mikachu@comhem.se>
Sun, 9 Mar 2008 19:38:43 +0000 (20:38 +0100)
committerMikael Magnusson <mikachu@comhem.se>
Sun, 9 Mar 2008 19:39:19 +0000 (20:39 +0100)
Makefile.am
openbox/actions/all.c
openbox/actions/all.h
openbox/actions/focusfallback.c [new file with mode: 0644]

index 4e7a55a..6a8e08d 100644 (file)
@@ -184,6 +184,7 @@ openbox_openbox_SOURCES = \
        openbox/actions/execute.c \
        openbox/actions/exit.c \
        openbox/actions/focus.c \
+       openbox/actions/focusfallback.c \
        openbox/actions/focustobottom.c \
        openbox/actions/fullscreen.c \
        openbox/actions/growtoedge.c \
index 1e34c9c..d5052aa 100644 (file)
@@ -19,6 +19,7 @@ void action_all_startup(void)
     action_lower_startup();
     action_raiselower_startup();
     action_unfocus_startup();
+    action_focusfallback_startup();
     action_iconify_startup();
     action_fullscreen_startup();
     action_maximize_startup();
index 5d79d0e..1d59d61 100644 (file)
@@ -20,6 +20,7 @@ void action_raisetemp_startup(void);
 void action_lower_startup(void);
 void action_raiselower_startup(void);
 void action_unfocus_startup(void);
+void action_focusfallback_startup(void);
 void action_iconify_startup(void);
 void action_fullscreen_startup(void);
 void action_maximize_startup(void);
diff --git a/openbox/actions/focusfallback.c b/openbox/actions/focusfallback.c
new file mode 100644 (file)
index 0000000..424e610
--- /dev/null
@@ -0,0 +1,17 @@
+#include "openbox/actions.h"
+#include "openbox/focus.h"
+
+static gboolean run_func(ObActionsData *data, gpointer options);
+
+void action_focusfallback_startup(void)
+{
+    actions_register("FocusFallback", NULL, NULL, run_func, NULL, NULL);
+}
+
+/* Always return FALSE because its not interactive */
+static gboolean run_func(ObActionsData *data, gpointer options)
+{
+    if (data->client && data->client == focus_client)
+        focus_fallback(FALSE, FALSE, TRUE, FALSE);
+    return FALSE;
+}