all repos — openbox @ ca28e08c2f47dec4e30f54c3ef64376a6246fbf9

openbox fork - make it a bit more like ryudo

add dockautohide action
Dana Jansens danakj@orodu.net
commit

ca28e08c2f47dec4e30f54c3ef64376a6246fbf9

parent

b963ed3a92ac0c8980618531fccdaf81613595b3

5 files changed, 25 insertions(+), 199 deletions(-)

jump to
M Makefile.amMakefile.am

@@ -163,6 +163,7 @@ openbox/actions/cyclewindows.c \

openbox/actions/debug.c \ openbox/actions/decorations.c \ openbox/actions/desktop.c \ + openbox/actions/dockautohide.c \ openbox/actions/directionalcyclewindows.c \ openbox/actions/directionaldesktop.c \ openbox/actions/directionaltargetwindow.c \
M openbox/action.copenbox/action.c

@@ -41,168 +41,6 @@ #include <glib.h>

-typedef struct -{ - const gchar *name; - void (*func)(union ActionData *); - void (*setup)(ObAction **, ObUserAction uact); -} ActionString; - -static ObAction *action_new(void (*func)(union ActionData *data)) -{ - ObAction *a = g_new0(ObAction, 1); - a->ref = 1; - a->func = func; - - return a; -} - -void action_ref(ObAction *a) -{ - ++a->ref; -} - -void action_unref(ObAction *a) -{ - if (a == NULL) return; - - if (--a->ref > 0) return; - - /* deal with pointers */ - if (a->func == action_execute || a->func == action_restart) - g_free(a->data.execute.path); - else if (a->func == action_debug) - g_free(a->data.debug.string); - else if (a->func == action_showmenu) - g_free(a->data.showmenu.name); - - g_free(a); -} - -ObAction* action_copy(const ObAction *src) -{ - ObAction *a = action_new(src->func); - - a->data = src->data; - - /* deal with pointers */ - if (a->func == action_execute || a->func == action_restart) - a->data.execute.path = g_strdup(a->data.execute.path); - else if (a->func == action_debug) - a->data.debug.string = g_strdup(a->data.debug.string); - else if (a->func == action_showmenu) - a->data.showmenu.name = g_strdup(a->data.showmenu.name); - - return a; -} - -void setup_action_send_to_desktop_prev(ObAction **a, ObUserAction uact) -{ - (*a)->data.sendtodir.inter.any.client_action = OB_CLIENT_ACTION_ALWAYS; - (*a)->data.sendtodir.inter.any.interactive = TRUE; - (*a)->data.sendtodir.dir = OB_DIRECTION_WEST; - (*a)->data.sendtodir.linear = TRUE; - (*a)->data.sendtodir.wrap = TRUE; - (*a)->data.sendtodir.follow = TRUE; -} - -void setup_action_send_to_desktop_next(ObAction **a, ObUserAction uact) -{ - (*a)->data.sendtodir.inter.any.client_action = OB_CLIENT_ACTION_ALWAYS; - (*a)->data.sendtodir.inter.any.interactive = TRUE; - (*a)->data.sendtodir.dir = OB_DIRECTION_EAST; - (*a)->data.sendtodir.linear = TRUE; - (*a)->data.sendtodir.wrap = TRUE; - (*a)->data.sendtodir.follow = TRUE; -} - -void setup_action_send_to_desktop_left(ObAction **a, ObUserAction uact) -{ - (*a)->data.sendtodir.inter.any.client_action = OB_CLIENT_ACTION_ALWAYS; - (*a)->data.sendtodir.inter.any.interactive = TRUE; - (*a)->data.sendtodir.dir = OB_DIRECTION_WEST; - (*a)->data.sendtodir.linear = FALSE; - (*a)->data.sendtodir.wrap = TRUE; - (*a)->data.sendtodir.follow = TRUE; -} - -void setup_action_send_to_desktop_right(ObAction **a, ObUserAction uact) -{ - (*a)->data.sendtodir.inter.any.client_action = OB_CLIENT_ACTION_ALWAYS; - (*a)->data.sendtodir.inter.any.interactive = TRUE; - (*a)->data.sendtodir.dir = OB_DIRECTION_EAST; - (*a)->data.sendtodir.linear = FALSE; - (*a)->data.sendtodir.wrap = TRUE; - (*a)->data.sendtodir.follow = TRUE; -} - -void setup_action_send_to_desktop_up(ObAction **a, ObUserAction uact) -{ - (*a)->data.sendtodir.inter.any.client_action = OB_CLIENT_ACTION_ALWAYS; - (*a)->data.sendtodir.inter.any.interactive = TRUE; - (*a)->data.sendtodir.dir = OB_DIRECTION_NORTH; - (*a)->data.sendtodir.linear = FALSE; - (*a)->data.sendtodir.wrap = TRUE; - (*a)->data.sendtodir.follow = TRUE; -} - -void setup_action_send_to_desktop_down(ObAction **a, ObUserAction uact) -{ - (*a)->data.sendtodir.inter.any.client_action = OB_CLIENT_ACTION_ALWAYS; - (*a)->data.sendtodir.inter.any.interactive = TRUE; - (*a)->data.sendtodir.dir = OB_DIRECTION_SOUTH; - (*a)->data.sendtodir.linear = FALSE; - (*a)->data.sendtodir.wrap = TRUE; - (*a)->data.sendtodir.follow = TRUE; -} - -void setup_action_desktop_prev(ObAction **a, ObUserAction uact) -{ - (*a)->data.desktopdir.inter.any.interactive = TRUE; - (*a)->data.desktopdir.dir = OB_DIRECTION_WEST; - (*a)->data.desktopdir.linear = TRUE; - (*a)->data.desktopdir.wrap = TRUE; -} - -void setup_action_desktop_next(ObAction **a, ObUserAction uact) -{ - (*a)->data.desktopdir.inter.any.interactive = TRUE; - (*a)->data.desktopdir.dir = OB_DIRECTION_EAST; - (*a)->data.desktopdir.linear = TRUE; - (*a)->data.desktopdir.wrap = TRUE; -} - -void setup_action_desktop_left(ObAction **a, ObUserAction uact) -{ - (*a)->data.desktopdir.inter.any.interactive = TRUE; - (*a)->data.desktopdir.dir = OB_DIRECTION_WEST; - (*a)->data.desktopdir.linear = FALSE; - (*a)->data.desktopdir.wrap = TRUE; -} - -void setup_action_desktop_right(ObAction **a, ObUserAction uact) -{ - (*a)->data.desktopdir.inter.any.interactive = TRUE; - (*a)->data.desktopdir.dir = OB_DIRECTION_EAST; - (*a)->data.desktopdir.linear = FALSE; - (*a)->data.desktopdir.wrap = TRUE; -} - -void setup_action_desktop_up(ObAction **a, ObUserAction uact) -{ - (*a)->data.desktopdir.inter.any.interactive = TRUE; - (*a)->data.desktopdir.dir = OB_DIRECTION_NORTH; - (*a)->data.desktopdir.linear = FALSE; - (*a)->data.desktopdir.wrap = TRUE; -} - -void setup_action_desktop_down(ObAction **a, ObUserAction uact) -{ - (*a)->data.desktopdir.inter.any.interactive = TRUE; - (*a)->data.desktopdir.dir = OB_DIRECTION_SOUTH; - (*a)->data.desktopdir.linear = FALSE; - (*a)->data.desktopdir.wrap = TRUE; -} void setup_action_movefromedge_north(ObAction **a, ObUserAction uact) {

@@ -318,41 +156,6 @@ {

"unshaderaise", action_unshaderaise, setup_client_action - }, - { - "sendtodesktopnext", - action_send_to_desktop_dir, - setup_action_send_to_desktop_next - }, - { - "sendtodesktopprevious", - action_send_to_desktop_dir, - setup_action_send_to_desktop_prev - }, - { - "sendtodesktopright", - action_send_to_desktop_dir, - setup_action_send_to_desktop_right - }, - { - "sendtodesktopleft", - action_send_to_desktop_dir, - setup_action_send_to_desktop_left - }, - { - "sendtodesktopup", - action_send_to_desktop_dir, - setup_action_send_to_desktop_up - }, - { - "sendtodesktopdown", - action_send_to_desktop_dir, - setup_action_send_to_desktop_down - }, - { - "toggledockautohide", - action_toggle_dockautohide, - NULL }, { "sendtotoplayer",

@@ -587,8 +390,6 @@ }

void action_toggle_dockautohide(union ActionData *data) { - config_dock_hide = !config_dock_hide; - dock_configure(); } void action_remove_desktop(union ActionData *data)
M openbox/actions/all.copenbox/actions/all.c

@@ -36,4 +36,5 @@ action_desktop_startup();

action_directionaldesktop_startup(); action_resizerelative_startup(); action_addremovedesktop_startup(); + action_dockautohide_startup(); }
M openbox/actions/all.hopenbox/actions/all.h

@@ -37,5 +37,6 @@ void action_desktop_startup();

void action_directionaldesktop_startup(); void action_resizerelative_startup(); void action_addremovedesktop_startup(); +void action_dockautohide_startup(); #endif
A openbox/actions/dockautohide.c

@@ -0,0 +1,22 @@

+#include "openbox/actions.h" +#include "openbox/dock.h" +#include "openbox/config.h" + +static gboolean run_func(ObActionsData *data, gpointer options); + +void action_dockautohide_startup() +{ + actions_register("DockAutoHide", + NULL, NULL, + run_func, + NULL, NULL); +} + +/* Always return FALSE because its not interactive */ +static gboolean run_func(ObActionsData *data, gpointer options) +{ + config_dock_hide = !config_dock_hide; + dock_configure(); + + return FALSE; +}