Add FocusFallback action. mikabox/actions
authorMikael Magnusson <mikachu@comhem.se>
Sun, 9 Mar 2008 19:38:43 +0000 (20:38 +0100)
committerMikael Magnusson <mikachu@gmail.com>
Sat, 11 Oct 2014 00:17:19 +0000 (02:17 +0200)
Makefile.am
openbox/actions/all.c
openbox/actions/all.h
openbox/actions/focusfallback.c [new file with mode: 0644]

index d14042e8d70abca5d15d3c5ba9e92d0d8bc59da4..f7b09dd90326eb5c22d86f4e7ca65e3de6fc7479 100644 (file)
@@ -210,6 +210,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 1c0e21a9f704a00e9a8bee83d165730cdf0be2b9..d445706ebbfb0e6e6c2f530cf1c3afa6f1be4a68 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 cc3f580d9f8cb636b026ca7f9825be67957c6da6..2acff5210228ed632dc9b7305c80b239766f5876 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..fd8ab22
--- /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);
+}
+
+/* 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;
+}