From f50091bba718bca8a37661a683a53566bc1577a3 Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Sun, 9 Mar 2008 20:38:43 +0100 Subject: [PATCH] Add FocusFallback action. --- Makefile.am | 1 + data/rc.xml | 8 ++++---- openbox/actions/all.c | 1 + openbox/actions/all.h | 1 + openbox/actions/focusfallback.c | 17 +++++++++++++++++ 5 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 openbox/actions/focusfallback.c diff --git a/Makefile.am b/Makefile.am index 69ba03a2..ada8ce97 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 \ diff --git a/data/rc.xml b/data/rc.xml index 3e5554ba..e25b6007 100644 --- a/data/rc.xml +++ b/data/rc.xml @@ -240,7 +240,7 @@ - + client-menu @@ -347,7 +347,7 @@ - + @@ -384,7 +384,7 @@ - + @@ -410,7 +410,7 @@ - + diff --git a/openbox/actions/all.c b/openbox/actions/all.c index 7b226b1f..1a4e7086 100644 --- a/openbox/actions/all.c +++ b/openbox/actions/all.c @@ -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(); diff --git a/openbox/actions/all.h b/openbox/actions/all.h index ec576844..f50160d5 100644 --- a/openbox/actions/all.h +++ b/openbox/actions/all.h @@ -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 index 00000000..fd8ab227 --- /dev/null +++ b/openbox/actions/focusfallback.c @@ -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; +} -- 2.39.2