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 \
<keybind key="A-Escape">
<action name="Lower"/>
<action name="FocusToBottom"/>
- <action name="Unfocus"/>
+ <action name="FocusFallback"/>
</keybind>
<keybind key="A-space">
<action name="ShowMenu"><menu>client-menu</menu></action>
<mousebind button="A-Middle" action="Press">
<action name="Lower"/>
<action name="FocusToBottom"/>
- <action name="Unfocus"/>
+ <action name="FocusFallback"/>
</mousebind>
<mousebind button="A-Up" action="Click">
<then>
<action name="Shade"/>
<action name="FocusToBottom"/>
- <action name="Unfocus"/>
+ <action name="FocusFallback"/>
<action name="Lower"/>
</then>
</action>
<mousebind button="Middle" action="Press">
<action name="Lower"/>
<action name="FocusToBottom"/>
- <action name="Unfocus"/>
+ <action name="FocusFallback"/>
</mousebind>
<mousebind button="Right" action="Press">
action_lower_startup();
action_raiselower_startup();
action_unfocus_startup();
+ action_focusfallback_startup();
action_iconify_startup();
action_fullscreen_startup();
action_maximize_startup();
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);
--- /dev/null
+#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;
+}