summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Makefile.am1
-rw-r--r--openbox/actions/all.c1
-rw-r--r--openbox/actions/all.h1
-rw-r--r--openbox/actions/focustobottom.c17
-rw-r--r--openbox/actions/unfocus.c40
6 files changed, 22 insertions, 39 deletions
diff --git a/.gitignore b/.gitignore
index 6563e005..8ec02cff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,7 +30,6 @@ m4/*.m4
*.la
missing
.dirstamp
-openbox/actions/focustobottom.c
openbox/openbox
parser/obparser-3.0.pc
po/Makefile.in.in
diff --git a/Makefile.am b/Makefile.am
index a4ebcc8c..07c7ce68 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -162,6 +162,7 @@ openbox_openbox_SOURCES = \
openbox/actions/execute.c \
openbox/actions/exit.c \
openbox/actions/focus.c \
+ openbox/actions/focustobottom.c \
openbox/actions/fullscreen.c \
openbox/actions/growtoedge.c \
openbox/actions/iconify.c \
diff --git a/openbox/actions/all.c b/openbox/actions/all.c
index 430d781d..06858c05 100644
--- a/openbox/actions/all.c
+++ b/openbox/actions/all.c
@@ -37,4 +37,5 @@ void action_all_startup()
action_movetoedge_startup();
action_growtoedge_startup();
action_if_startup();
+ action_focustobottom_startup();
}
diff --git a/openbox/actions/all.h b/openbox/actions/all.h
index 62d3faa8..5f3f573f 100644
--- a/openbox/actions/all.h
+++ b/openbox/actions/all.h
@@ -38,5 +38,6 @@ void action_layer_startup();
void action_movetoedge_startup();
void action_growtoedge_startup();
void action_if_startup();
+void action_focustobottom_startup();
#endif
diff --git a/openbox/actions/focustobottom.c b/openbox/actions/focustobottom.c
new file mode 100644
index 00000000..74d48e33
--- /dev/null
+++ b/openbox/actions/focustobottom.c
@@ -0,0 +1,17 @@
+#include "openbox/actions.h"
+#include "openbox/focus.h"
+
+static gboolean run_func(ObActionsData *data, gpointer options);
+
+void action_focustobottom_startup()
+{
+ actions_register("FocusToBottom", NULL, NULL, run_func, NULL, NULL);
+}
+
+/* Always return FALSE because its not interactive */
+static gboolean run_func(ObActionsData *data, gpointer options)
+{
+ if (data->client)
+ focus_order_to_bottom(data->client);
+ return FALSE;
+}
diff --git a/openbox/actions/unfocus.c b/openbox/actions/unfocus.c
index d581864e..70384f4d 100644
--- a/openbox/actions/unfocus.c
+++ b/openbox/actions/unfocus.c
@@ -1,53 +1,17 @@
#include "openbox/actions.h"
#include "openbox/focus.h"
-typedef struct {
- gboolean tobottom;
-} Options;
-
-static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node);
-static void free_func(gpointer options);
static gboolean run_func(ObActionsData *data, gpointer options);
void action_unfocus_startup()
{
- actions_register("Unfocus",
- setup_func,
- free_func,
- run_func,
- NULL, NULL);
-}
-
-static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
-{
- xmlNodePtr n;
- Options *o;
-
- o = g_new0(Options, 1);
- o->tobottom = TRUE;
-
- if ((n = parse_find_node("tobottom", node)))
- o->tobottom = parse_bool(doc, n);
- return o;
-}
-
-static void free_func(gpointer options)
-{
- Options *o = options;
-
- g_free(o);
+ actions_register("Unfocus", NULL, NULL, run_func, NULL, NULL);
}
/* Always return FALSE because its not interactive */
static gboolean run_func(ObActionsData *data, gpointer options)
{
- Options *o = options;
-
- if (data->client && data->client == focus_client) {
- if (o->tobottom)
- focus_order_to_bottom(data->client);
+ if (data->client && data->client == focus_client)
focus_fallback(FALSE, FALSE, TRUE);
- }
-
return FALSE;
}