diff options
| author | Dana Jansens <danakj@orodu.net> | 2009-12-17 10:23:48 -0500 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2009-12-17 10:23:49 -0500 |
| commit | d18d9c9379e3387073fc9346e9857fdde077b985 (patch) | |
| tree | 753dd70aec47f7fc23862c3180f9b483a37ab06a /openbox/actions | |
| parent | 50d662681160c309ea86268c0d05794b87b75593 (diff) | |
Make it possible for an action name to choose whether it is interactive or not based on its options.
This way we can use the same name with options for an interactive action and a
non-interactive action.
Shorten the names of the ObActionsInteractive* functions to ObActionsI*
Add a ObActionsIPreFunc that is called for interactive actions
before the interactivity (key/mouse grab) is started.
Add a ObActionsIPostFunc that is called for interactive actions
after the interactiviti (key/mouse grab) has ended.
Diffstat (limited to 'openbox/actions')
37 files changed, 285 insertions, 231 deletions
diff --git a/openbox/actions/addremovedesktop.c b/openbox/actions/addremovedesktop.c index 1e7f0b57..111742c1 100644 --- a/openbox/actions/addremovedesktop.c +++ b/openbox/actions/addremovedesktop.c @@ -19,20 +19,17 @@ static gpointer setup_removelast_func(xmlNodePtr node); void action_addremovedesktop_startup(void) { - actions_register("AddDesktop", setup_add_func, g_free, run_func, - NULL, NULL); - actions_register("RemoveDesktop", setup_remove_func, g_free, run_func, - NULL, NULL); + actions_register("AddDesktop", setup_add_func, g_free, run_func); + actions_register("RemoveDesktop", setup_remove_func, g_free, run_func); /* 3.4-compatibility */ - actions_register("AddDesktopLast", setup_addlast_func, g_free, run_func, - NULL, NULL); - actions_register("RemoveDesktopLast", setup_removelast_func, g_free, run_func, - NULL, NULL); - actions_register("AddDesktopCurrent", setup_addcurrent_func, g_free, run_func, - NULL, NULL); - actions_register("RemoveDesktopCurrent", setup_removecurrent_func, g_free, run_func, - NULL, NULL); + actions_register("AddDesktopLast", setup_addlast_func, g_free, run_func); + actions_register("RemoveDesktopLast", setup_removelast_func, + g_free, run_func); + actions_register("AddDesktopCurrent", setup_addcurrent_func, + g_free, run_func); + actions_register("RemoveDesktopCurrent", setup_removecurrent_func, + g_free, run_func); } static gpointer setup_func(xmlNodePtr node) diff --git a/openbox/actions/breakchroot.c b/openbox/actions/breakchroot.c index 9804091b..8c004582 100644 --- a/openbox/actions/breakchroot.c +++ b/openbox/actions/breakchroot.c @@ -7,8 +7,7 @@ void action_breakchroot_startup(void) { actions_register("BreakChroot", NULL, NULL, - run_func, - NULL, NULL); + run_func); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/close.c b/openbox/actions/close.c index ab75e05d..d2bc96c2 100644 --- a/openbox/actions/close.c +++ b/openbox/actions/close.c @@ -7,8 +7,7 @@ void action_close_startup(void) { actions_register("Close", NULL, NULL, - run_func, - NULL, NULL); + run_func); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/cyclewindows.c b/openbox/actions/cyclewindows.c index 6d847837..3d021bda 100644 --- a/openbox/actions/cyclewindows.c +++ b/openbox/actions/cyclewindows.c @@ -16,13 +16,28 @@ typedef struct { gboolean raise; ObFocusCyclePopupMode dialog_mode; GSList *actions; -} Options; -static gboolean cycling = FALSE; -static gpointer setup_func(xmlNodePtr node); -static gpointer setup_forward_func(xmlNodePtr node); -static gpointer setup_backward_func(xmlNodePtr node); + /* options for after we're done */ + gboolean cancel; /* did the user cancel or not */ + guint state; /* keyboard state when finished */ +} Options; + +static gpointer setup_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *in, + ObActionsICancelFunc *c, + ObActionsIPreFunc *post); +static gpointer setup_forward_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *in, + ObActionsICancelFunc *c, + ObActionsIPreFunc *post); +static gpointer setup_backward_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *in, + ObActionsICancelFunc *c, + ObActionsIPreFunc *post); static void free_func(gpointer options); static gboolean run_func(ObActionsData *data, gpointer options); static gboolean i_input_func(guint initial_state, @@ -30,18 +45,20 @@ static gboolean i_input_func(guint initial_state, gpointer options, gboolean *used); static void i_cancel_func(gpointer options); - -static void end_cycle(gboolean cancel, guint state, Options *o); +static void i_post_func(gpointer options); void action_cyclewindows_startup(void) { - actions_register("NextWindow", setup_forward_func, free_func, - run_func, i_input_func, i_cancel_func); - actions_register("PreviousWindow", setup_backward_func, free_func, - run_func, i_input_func, i_cancel_func); + actions_register_i("NextWindow", setup_forward_func, free_func, run_func); + actions_register_i("PreviousWindow", setup_backward_func, free_func, + run_func); } -static gpointer setup_func(xmlNodePtr node) +static gpointer setup_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *input, + ObActionsICancelFunc *cancel, + ObActionsIPreFunc *post) { xmlNodePtr n; Options *o; @@ -88,19 +105,30 @@ static gpointer setup_func(xmlNodePtr node) actions_parse_string("Unshade")); } + *input = i_input_func; + *cancel = i_cancel_func; + *post = i_post_func; return o; } -static gpointer setup_forward_func(xmlNodePtr node) +static gpointer setup_forward_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *input, + ObActionsICancelFunc *cancel, + ObActionsIPreFunc *post) { - Options *o = setup_func(node); + Options *o = setup_func(node, pre, input, cancel, post); o->forward = TRUE; return o; } -static gpointer setup_backward_func(xmlNodePtr node) +static gpointer setup_backward_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *input, + ObActionsICancelFunc *cancel, + ObActionsIPreFunc *post) { - Options *o = setup_func(node); + Options *o = setup_func(node, pre, input, cancel, post); o->forward = FALSE; return o; } @@ -131,7 +159,6 @@ static gboolean run_func(ObActionsData *data, gpointer options) o->bar, o->dialog_mode, FALSE, FALSE); - cycling = TRUE; stacking_restore(); if (o->raise && ft) stacking_temp_raise(CLIENT_AS_WINDOW(ft)); @@ -144,10 +171,13 @@ static gboolean i_input_func(guint initial_state, gpointer options, gboolean *used) { + Options *o = options; + if (e->type == KeyPress) { /* Escape cancels no matter what */ if (ob_keycode_match(e->xkey.keycode, OB_KEY_ESCAPE)) { - end_cycle(TRUE, e->xkey.state, options); + o->cancel = TRUE; + o->state = e->xkey.state; return FALSE; } @@ -155,7 +185,8 @@ static gboolean i_input_func(guint initial_state, else if (ob_keycode_match(e->xkey.keycode, OB_KEY_RETURN) && !initial_state) { - end_cycle(FALSE, e->xkey.state, options); + o->cancel = FALSE; + o->state = e->xkey.state; return FALSE; } } @@ -163,7 +194,8 @@ static gboolean i_input_func(guint initial_state, else if (e->type == KeyRelease && initial_state && (e->xkey.state & initial_state) == 0) { - end_cycle(FALSE, e->xkey.state, options); + o->cancel = FALSE; + o->state = e->xkey.state; return FALSE; } @@ -172,14 +204,14 @@ static gboolean i_input_func(guint initial_state, static void i_cancel_func(gpointer options) { - /* we get cancelled when we move focus, but we're not cycling anymore, so - just ignore that */ - if (cycling) - end_cycle(TRUE, 0, options); + Options *o = options; + o->cancel = TRUE; + o->state = 0; } -static void end_cycle(gboolean cancel, guint state, Options *o) +static void i_post_func(gpointer options) { + Options *o = options; struct _ObClient *ft; ft = focus_cycle(o->forward, @@ -190,12 +222,11 @@ static void end_cycle(gboolean cancel, guint state, Options *o) TRUE, o->bar, o->dialog_mode, - TRUE, cancel); - cycling = FALSE; + TRUE, o->cancel); if (ft) actions_run_acts(o->actions, OB_USER_ACTION_KEYBOARD_KEY, - state, -1, -1, 0, OB_FRAME_CONTEXT_NONE, ft); + o->state, -1, -1, 0, OB_FRAME_CONTEXT_NONE, ft); stacking_restore(); } diff --git a/openbox/actions/debug.c b/openbox/actions/debug.c index 99e838a6..3ae09016 100644 --- a/openbox/actions/debug.c +++ b/openbox/actions/debug.c @@ -11,7 +11,7 @@ static gboolean run_func(ObActionsData *data, gpointer options); void action_debug_startup(void) { - actions_register("Debug", setup_func, free_func, run_func, NULL, NULL); + actions_register("Debug", setup_func, free_func, run_func); } static gpointer setup_func(xmlNodePtr node) diff --git a/openbox/actions/decorations.c b/openbox/actions/decorations.c index e85fb8ef..f6fd2cbe 100644 --- a/openbox/actions/decorations.c +++ b/openbox/actions/decorations.c @@ -7,10 +7,9 @@ static gboolean run_func_toggle(ObActionsData *data, gpointer options); void action_decorations_startup(void) { - actions_register("Decorate", NULL, NULL, run_func_on, NULL, NULL); - actions_register("Undecorate", NULL, NULL, run_func_off, NULL, NULL); - actions_register("ToggleDecorations", NULL, NULL, run_func_toggle, - NULL, NULL); + actions_register("Decorate", NULL, NULL, run_func_on); + actions_register("Undecorate", NULL, NULL, run_func_off); + actions_register("ToggleDecorations", NULL, NULL, run_func_toggle); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/desktop.c b/openbox/actions/desktop.c index 3b33afbd..27b717b1 100644 --- a/openbox/actions/desktop.c +++ b/openbox/actions/desktop.c @@ -49,43 +49,31 @@ static gpointer setup_send_down_func(xmlNodePtr node); void action_desktop_startup(void) { - actions_register("GoToDesktop", setup_go_func, g_free, run_func, - NULL, NULL); - actions_register("SendToDesktop", setup_send_func, g_free, run_func, - NULL, NULL); + actions_register("GoToDesktop", setup_go_func, g_free, run_func); + actions_register("SendToDesktop", setup_send_func, g_free, run_func); /* 3.4-compatibility */ - actions_register("DesktopLast", setup_go_last_func, g_free, run_func, - NULL, NULL); - actions_register("SendToDesktopLast", setup_send_last_func, g_free, run_func, - NULL, NULL); - actions_register("Desktop", setup_go_abs_func, g_free, run_func, - NULL, NULL); - actions_register("SendToDesktop", setup_send_abs_func, g_free, run_func, - NULL, NULL); - actions_register("DesktopNext", setup_go_next_func, g_free, run_func, - NULL, NULL); - actions_register("SendToDesktopNext", setup_send_next_func, g_free, run_func, - NULL, NULL); - actions_register("DesktopPrevious", setup_go_prev_func, g_free, run_func, - NULL, NULL); - actions_register("SendToDesktopPrevious", setup_send_prev_func, g_free, run_func, - NULL, NULL); - actions_register("DesktopLeft", setup_go_left_func, g_free, run_func, - NULL, NULL); - actions_register("SendToDesktopLeft", setup_send_left_func, g_free, run_func, - NULL, NULL); - actions_register("DesktopRight", setup_go_right_func, g_free, run_func, - NULL, NULL); - actions_register("SendToDesktopRight", setup_send_right_func, g_free, run_func, - NULL, NULL); - actions_register("DesktopUp", setup_go_up_func, g_free, run_func, - NULL, NULL); - actions_register("SendToDesktopUp", setup_send_up_func, g_free, run_func, - NULL, NULL); - actions_register("DesktopDown", setup_go_down_func, g_free, run_func, - NULL, NULL); - actions_register("SendToDesktopDown", setup_send_down_func, g_free, run_func, - NULL, NULL); + actions_register("DesktopLast", setup_go_last_func, g_free, run_func); + actions_register("SendToDesktopLast", setup_send_last_func, + g_free, run_func); + actions_register("Desktop", setup_go_abs_func, g_free, run_func); + actions_register("SendToDesktop", setup_send_abs_func, g_free, run_func); + actions_register("DesktopNext", setup_go_next_func, g_free, run_func); + actions_register("SendToDesktopNext", setup_send_next_func, + g_free, run_func); + actions_register("DesktopPrevious", setup_go_prev_func, g_free, run_func); + actions_register("SendToDesktopPrevious", setup_send_prev_func, + g_free, run_func); + actions_register("DesktopLeft", setup_go_left_func, g_free, run_func); + actions_register("SendToDesktopLeft", setup_send_left_func, + g_free, run_func); + actions_register("DesktopRight", setup_go_right_func, g_free, run_func); + actions_register("SendToDesktopRight", setup_send_right_func, + g_free, run_func); + actions_register("DesktopUp", setup_go_up_func, g_free, run_func); + actions_register("SendToDesktopUp", setup_send_up_func, g_free, run_func); + actions_register("DesktopDown", setup_go_down_func, g_free, run_func); + actions_register("SendToDesktopDown", setup_send_down_func, + g_free, run_func); } static gpointer setup_go_func(xmlNodePtr node) diff --git a/openbox/actions/directionalwindows.c b/openbox/actions/directionalwindows.c index 3d997aef..0d1476c7 100644 --- a/openbox/actions/directionalwindows.c +++ b/openbox/actions/directionalwindows.c @@ -21,7 +21,11 @@ typedef struct { static gboolean cycling = FALSE; static gpointer setup_func(xmlNodePtr node); -static gpointer setup_cycle_func(xmlNodePtr node); +static gpointer setup_cycle_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *input, + ObActionsICancelFunc *cancel, + ObActionsIPostFunc *post); static gpointer setup_target_func(xmlNodePtr node); static void free_func(gpointer options); static gboolean run_func(ObActionsData *data, gpointer options); @@ -34,14 +38,46 @@ static void i_cancel_func(gpointer options); static void end_cycle(gboolean cancel, guint state, Options *o); /* 3.4-compatibility */ -static gpointer setup_north_cycle_func(xmlNodePtr node); -static gpointer setup_south_cycle_func(xmlNodePtr node); -static gpointer setup_east_cycle_func(xmlNodePtr node); -static gpointer setup_west_cycle_func(xmlNodePtr node); -static gpointer setup_northwest_cycle_func(xmlNodePtr node); -static gpointer setup_northeast_cycle_func(xmlNodePtr node); -static gpointer setup_southwest_cycle_func(xmlNodePtr node); -static gpointer setup_southeast_cycle_func(xmlNodePtr node); +static gpointer setup_north_cycle_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *in, + ObActionsICancelFunc *c, + ObActionsIPostFunc *post); +static gpointer setup_south_cycle_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *in, + ObActionsICancelFunc *c, + ObActionsIPostFunc *post); +static gpointer setup_east_cycle_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *in, + ObActionsICancelFunc *c, + ObActionsIPostFunc *post); +static gpointer setup_west_cycle_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *in, + ObActionsICancelFunc *c, + ObActionsIPostFunc *post); +static gpointer setup_northwest_cycle_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *in, + ObActionsICancelFunc *c, + ObActionsIPostFunc *post); +static gpointer setup_northeast_cycle_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *in, + ObActionsICancelFunc *c, + ObActionsIPostFunc *post); +static gpointer setup_southwest_cycle_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *in, + ObActionsICancelFunc *c, + ObActionsIPostFunc *post); +static gpointer setup_southeast_cycle_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *in, + ObActionsICancelFunc *c, + ObActionsIPostFunc *post); static gpointer setup_north_target_func(xmlNodePtr node); static gpointer setup_south_target_func(xmlNodePtr node); static gpointer setup_east_target_func(xmlNodePtr node); @@ -53,43 +89,43 @@ static gpointer setup_southeast_target_func(xmlNodePtr node); void action_directionalwindows_startup(void) { - actions_register("DirectionalCycleWindows", setup_cycle_func, free_func, - run_func, i_input_func, i_cancel_func); + actions_register_i("DirectionalCycleWindows", setup_cycle_func, free_func, + run_func); actions_register("DirectionalTargetWindow", setup_target_func, free_func, - run_func, NULL, NULL); + run_func); /* 3.4-compatibility */ - actions_register("DirectionalFocusNorth", setup_north_cycle_func, - free_func, run_func, i_input_func, i_cancel_func); - actions_register("DirectionalFocusSouth", setup_south_cycle_func, - free_func, run_func, i_input_func, i_cancel_func); - actions_register("DirectionalFocusWest", setup_west_cycle_func, - free_func, run_func, i_input_func, i_cancel_func); - actions_register("DirectionalFocusEast", setup_east_cycle_func, - free_func, run_func, i_input_func, i_cancel_func); - actions_register("DirectionalFocusNorthWest", setup_northwest_cycle_func, - free_func, run_func, i_input_func, i_cancel_func); - actions_register("DirectionalFocusNorthEast", setup_northeast_cycle_func, - free_func, run_func, i_input_func, i_cancel_func); - actions_register("DirectionalFocusSouthWest", setup_southwest_cycle_func, - free_func, run_func, i_input_func, i_cancel_func); - actions_register("DirectionalFocusSouthEast", setup_southeast_cycle_func, - free_func, run_func, i_input_func, i_cancel_func); + actions_register_i("DirectionalFocusNorth", setup_north_cycle_func, + free_func, run_func); + actions_register_i("DirectionalFocusSouth", setup_south_cycle_func, + free_func, run_func); + actions_register_i("DirectionalFocusWest", setup_west_cycle_func, + free_func, run_func); + actions_register_i("DirectionalFocusEast", setup_east_cycle_func, + free_func, run_func); + actions_register_i("DirectionalFocusNorthWest", setup_northwest_cycle_func, + free_func, run_func); + actions_register_i("DirectionalFocusNorthEast", setup_northeast_cycle_func, + free_func, run_func); + actions_register_i("DirectionalFocusSouthWest", setup_southwest_cycle_func, + free_func, run_func); + actions_register_i("DirectionalFocusSouthEast", setup_southeast_cycle_func, + free_func, run_func); actions_register("DirectionalTargetNorth", setup_north_target_func, - free_func, run_func, i_input_func, i_cancel_func); + free_func, run_func); actions_register("DirectionalTargetSouth", setup_south_target_func, - free_func, run_func, i_input_func, i_cancel_func); + free_func, run_func); actions_register("DirectionalTargetWest", setup_west_target_func, - free_func, run_func, i_input_func, i_cancel_func); + free_func, run_func); actions_register("DirectionalTargetEast", setup_east_target_func, - free_func, run_func, i_input_func, i_cancel_func); + free_func, run_func); actions_register("DirectionalTargetNorthWest", setup_northwest_target_func, - free_func, run_func, i_input_func, i_cancel_func); + free_func, run_func); actions_register("DirectionalTargetNorthEast", setup_northeast_target_func, - free_func, run_func, i_input_func, i_cancel_func); + free_func, run_func); actions_register("DirectionalTargetSouthWest", setup_southwest_target_func, - free_func, run_func, i_input_func, i_cancel_func); + free_func, run_func); actions_register("DirectionalTargetSouthEast", setup_southeast_target_func, - free_func, run_func, i_input_func, i_cancel_func); + free_func, run_func); } static gpointer setup_func(xmlNodePtr node) @@ -158,10 +194,16 @@ static gpointer setup_func(xmlNodePtr node) return o; } -static gpointer setup_cycle_func(xmlNodePtr node) +static gpointer setup_cycle_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *input, + ObActionsICancelFunc *cancel, + ObActionsIPostFunc *post) { Options *o = setup_func(node); o->interactive = TRUE; + *input = i_input_func; + *cancel = i_cancel_func; return o; } @@ -269,58 +311,90 @@ static void end_cycle(gboolean cancel, guint state, Options *o) } /* 3.4-compatibility */ -static gpointer setup_north_cycle_func(xmlNodePtr node) +static gpointer setup_north_cycle_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *input, + ObActionsICancelFunc *cancel, + ObActionsIPostFunc *post) { - Options *o = setup_cycle_func(node); + Options *o = setup_cycle_func(node, pre, input, cancel, post); o->direction = OB_DIRECTION_NORTH; return o; } -static gpointer setup_south_cycle_func(xmlNodePtr node) +static gpointer setup_south_cycle_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *input, + ObActionsICancelFunc *cancel, + ObActionsIPostFunc *post) { - Options *o = setup_cycle_func(node); + Options *o = setup_cycle_func(node, pre, input, cancel, post); o->direction = OB_DIRECTION_SOUTH; return o; } -static gpointer setup_east_cycle_func(xmlNodePtr node) +static gpointer setup_east_cycle_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *input, + ObActionsICancelFunc *cancel, + ObActionsIPostFunc *post) { - Options *o = setup_cycle_func(node); + Options *o = setup_cycle_func(node, pre, input, cancel, post); o->direction = OB_DIRECTION_EAST; return o; } -static gpointer setup_west_cycle_func(xmlNodePtr node) +static gpointer setup_west_cycle_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *input, + ObActionsICancelFunc *cancel, + ObActionsIPostFunc *post) { - Options *o = setup_cycle_func(node); + Options *o = setup_cycle_func(node, pre, input, cancel, post); o->direction = OB_DIRECTION_WEST; return o; } -static gpointer setup_northwest_cycle_func(xmlNodePtr node) +static gpointer setup_northwest_cycle_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *input, + ObActionsICancelFunc *cancel, + ObActionsIPostFunc *post) { - Options *o = setup_cycle_func(node); + Options *o = setup_cycle_func(node, pre, input, cancel, post); o->direction = OB_DIRECTION_NORTHWEST; return o; } -static gpointer setup_northeast_cycle_func(xmlNodePtr node) +static gpointer setup_northeast_cycle_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *input, + ObActionsICancelFunc *cancel, + ObActionsIPostFunc *post) { - Options *o = setup_cycle_func(node); + Options *o = setup_cycle_func(node, pre, input, cancel, post); o->direction = OB_DIRECTION_EAST; return o; } -static gpointer setup_southwest_cycle_func(xmlNodePtr node) +static gpointer setup_southwest_cycle_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *input, + ObActionsICancelFunc *cancel, + ObActionsIPostFunc *post) { - Options *o = setup_cycle_func(node); + Options *o = setup_cycle_func(node, pre, input, cancel, post); o->direction = OB_DIRECTION_SOUTHWEST; return o; } -static gpointer setup_southeast_cycle_func(xmlNodePtr node) +static gpointer setup_southeast_cycle_func(xmlNodePtr node, + ObActionsIPreFunc *pre, + ObActionsIInputFunc *input, + ObActionsICancelFunc *cancel, + ObActionsIPostFunc *post) { - Options *o = setup_cycle_func(node); + Options *o = setup_cycle_func(node, pre, input, cancel, post); o->direction = OB_DIRECTION_SOUTHEAST; return o; } diff --git a/openbox/actions/dockautohide.c b/openbox/actions/dockautohide.c index 5e5382d4..4a750b2c 100644 --- a/openbox/actions/dockautohide.c +++ b/openbox/actions/dockautohide.c @@ -8,8 +8,7 @@ void action_dockautohide_startup(void) { actions_register("ToggleDockAutoHide", NULL, NULL, - run_func, - NULL, NULL); + run_func); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/execute.c b/openbox/actions/execute.c index 4d29fc19..bde7f5d2 100644 --- a/openbox/actions/execute.c +++ b/openbox/actions/execute.c @@ -33,7 +33,7 @@ static void i_cancel_func(gpointer options); void action_execute_startup(void) { - actions_register("Execute", setup_func, free_func, run_func, NULL, NULL); + actions_register("Execute", setup_func, free_func, run_func); } static gpointer setup_func(xmlNodePtr node) diff --git a/openbox/actions/exit.c b/openbox/actions/exit.c index 3bfebbce..55d89a0b 100644 --- a/openbox/actions/exit.c +++ b/openbox/actions/exit.c @@ -13,8 +13,8 @@ static gboolean run_func(ObActionsData *data, gpointer options); void action_exit_startup(void) { - actions_register("Exit", setup_func, NULL, run_func, NULL, NULL); - actions_register("SessionLogout", setup_func, NULL, run_func, NULL, NULL); + actions_register("Exit", setup_func, NULL, run_func); + actions_register("SessionLogout", setup_func, NULL, run_func); } static gpointer setup_func(xmlNodePtr node) diff --git a/openbox/actions/focus.c b/openbox/actions/focus.c index e25a79ea..0e546dea 100644 --- a/openbox/actions/focus.c +++ b/openbox/actions/focus.c @@ -13,7 +13,7 @@ static gboolean run_func(ObActionsData *data, gpointer options); void action_focus_startup(void) { - actions_register("Focus", setup_func, g_free, run_func, NULL, NULL); + actions_register("Focus", setup_func, g_free, run_func); } static gpointer setup_func(xmlNodePtr node) diff --git a/openbox/actions/focustobottom.c b/openbox/actions/focustobottom.c index 49c945b9..a3e5b5ac 100644 --- a/openbox/actions/focustobottom.c +++ b/openbox/actions/focustobottom.c @@ -5,7 +5,7 @@ static gboolean run_func(ObActionsData *data, gpointer options); void action_focustobottom_startup(void) { - actions_register("FocusToBottom", NULL, NULL, run_func, NULL, NULL); + actions_register("FocusToBottom", NULL, NULL, run_func); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/fullscreen.c b/openbox/actions/fullscreen.c index 7579b95d..e1fdf232 100644 --- a/openbox/actions/fullscreen.c +++ b/openbox/actions/fullscreen.c @@ -5,8 +5,7 @@ static gboolean run_func_toggle(ObActionsData *data, gpointer options); void action_fullscreen_startup(void) { - actions_register("ToggleFullscreen", NULL, NULL, run_func_toggle, - NULL, NULL); + actions_register("ToggleFullscreen", NULL, NULL, run_func_toggle); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/growtoedge.c b/openbox/actions/growtoedge.c index 2a31496a..0c39a63e 100644 --- a/openbox/actions/growtoedge.c +++ b/openbox/actions/growtoedge.c @@ -22,18 +22,14 @@ static gpointer setup_west_func(xmlNodePtr node); void action_growtoedge_startup(void) { actions_register("GrowToEdge", setup_func, - g_free, run_func, NULL, NULL); + g_free, run_func); actions_register("ShrinkToEdge", setup_shrink_func, - g_free, run_func, NULL, NULL); + g_free, run_func); /* 3.4-compatibility */ - actions_register("GrowToEdgeNorth", setup_north_func, g_free, run_func, - NULL, NULL); - actions_register("GrowToEdgeSouth", setup_south_func, g_free, run_func, - NULL, NULL); - actions_register("GrowToEdgeEast", setup_east_func, g_free, run_func, - NULL, NULL); - actions_register("GrowToEdgeWest", setup_west_func, g_free, run_func, - NULL, NULL); + actions_register("GrowToEdgeNorth", setup_north_func, g_free, run_func); + actions_register("GrowToEdgeSouth", setup_south_func, g_free, run_func); + actions_register("GrowToEdgeEast", setup_east_func, g_free, run_func); + actions_register("GrowToEdgeWest", setup_west_func, g_free, run_func); } static gpointer setup_func(xmlNodePtr node) diff --git a/openbox/actions/iconify.c b/openbox/actions/iconify.c index 6f14a2e0..e6bdbb7b 100644 --- a/openbox/actions/iconify.c +++ b/openbox/actions/iconify.c @@ -7,8 +7,7 @@ void action_iconify_startup(void) { actions_register("Iconify", NULL, NULL, - run_func, - NULL, NULL); + run_func); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/if.c b/openbox/actions/if.c index 833bdd3a..47ff2fd5 100644 --- a/openbox/actions/if.c +++ b/openbox/actions/if.c @@ -29,7 +29,7 @@ static gboolean run_func(ObActionsData *data, gpointer options); void action_if_startup(void) { - actions_register("If", setup_func, free_func, run_func, NULL, NULL); + actions_register("If", setup_func, free_func, run_func); } static gpointer setup_func(xmlNodePtr node) diff --git a/openbox/actions/kill.c b/openbox/actions/kill.c index 68244407..b7d547b9 100644 --- a/openbox/actions/kill.c +++ b/openbox/actions/kill.c @@ -7,8 +7,7 @@ void action_kill_startup(void) { actions_register("Kill", NULL, NULL, - run_func, - NULL, NULL); + run_func); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/layer.c b/openbox/actions/layer.c index 1d522bbc..1dc7c4cf 100644 --- a/openbox/actions/layer.c +++ b/openbox/actions/layer.c @@ -18,18 +18,18 @@ static gpointer setup_sendnormal_func(xmlNodePtr node); void action_layer_startup(void) { actions_register("ToggleAlwaysOnTop", setup_func_top, g_free, - run_func, NULL, NULL); + run_func); actions_register("ToggleAlwaysOnBottom", setup_func_bottom, g_free, - run_func, NULL, NULL); + run_func); actions_register("SendToLayer", setup_func_send, g_free, - run_func, NULL, NULL); + run_func); /* 3.4-compatibility */ actions_register("SendToTopLayer", setup_sendtop_func, g_free, - run_func, NULL, NULL); + run_func); actions_register("SendToBottomLayer", setup_sendbottom_func, g_free, - run_func, NULL, NULL); + run_func); actions_register("SendToNormalLayer", setup_sendnormal_func, g_free, - run_func, NULL, NULL); + run_func); } static gpointer setup_func_top(xmlNodePtr node) diff --git a/openbox/actions/lower.c b/openbox/actions/lower.c index d34e933b..80ca6b8b 100644 --- a/openbox/actions/lower.c +++ b/openbox/actions/lower.c @@ -8,8 +8,7 @@ void action_lower_startup(void) { actions_register("Lower", NULL, NULL, - run_func, - NULL, NULL); + run_func); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/maximize.c b/openbox/actions/maximize.c index 5cc7141b..90a84039 100644 --- a/openbox/actions/maximize.c +++ b/openbox/actions/maximize.c @@ -23,31 +23,28 @@ static gpointer setup_vert_func(xmlNodePtr node); void action_maximize_startup(void) { - actions_register("Maximize", setup_func, g_free, run_func_on, - NULL, NULL); - actions_register("Unmaximize", setup_func, g_free, run_func_off, - NULL, NULL); - actions_register("ToggleMaximize", setup_func, g_free, run_func_toggle, - NULL, NULL); + actions_register("Maximize", setup_func, g_free, run_func_on); + actions_register("Unmaximize", setup_func, g_free, run_func_off); + actions_register("ToggleMaximize", setup_func, g_free, run_func_toggle); /* 3.4-compatibility */ actions_register("MaximizeFull", setup_both_func, g_free, - run_func_on, NULL, NULL); + run_func_on); actions_register("UnmaximizeFull", setup_both_func, g_free, - run_func_off, NULL, NULL); + run_func_off); actions_register("ToggleMaximizeFull", setup_both_func, g_free, - run_func_toggle, NULL, NULL); + run_func_toggle); actions_register("MaximizeHorz", setup_horz_func, g_free, - run_func_on, NULL, NULL); + run_func_on); actions_register("UnmaximizeHorz", setup_horz_func, g_free, - run_func_off, NULL, NULL); + run_func_off); actions_register("ToggleMaximizeHorz", setup_horz_func, g_free, - run_func_toggle, NULL, NULL); + run_func_toggle); actions_register("MaximizeVert", setup_vert_func, g_free, - run_func_on, NULL, NULL); + run_func_on); actions_register("UnmaximizeVert", setup_vert_func, g_free, - run_func_off, NULL, NULL); + run_func_off); actions_register("ToggleMaximizeVert", setup_vert_func, g_free, - run_func_toggle, NULL, NULL); + run_func_toggle); } static gpointer setup_func(xmlNodePtr node) diff --git a/openbox/actions/move.c b/openbox/actions/move.c index ddd3f59a..ba8372a5 100644 --- a/openbox/actions/move.c +++ b/openbox/actions/move.c @@ -8,8 +8,7 @@ void action_move_startup(void) { actions_register("Move", NULL, NULL, - run_func, - NULL, NULL); + run_func); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/moverelative.c b/openbox/actions/moverelative.c index 4e6e5998..5bcdda44 100644 --- a/openbox/actions/moverelative.c +++ b/openbox/actions/moverelative.c @@ -14,7 +14,7 @@ static gboolean run_func(ObActionsData *data, gpointer options); void action_moverelative_startup(void) { - actions_register("MoveRelative", setup_func, g_free, run_func, NULL, NULL); + actions_register("MoveRelative", setup_func, g_free, run_func); } static gpointer setup_func(xmlNodePtr node) diff --git a/openbox/actions/moveresizeto.c b/openbox/actions/moveresizeto.c index fc171fcc..3c135c89 100644 --- a/openbox/actions/moveresizeto.c +++ b/openbox/actions/moveresizeto.c @@ -30,10 +30,9 @@ static gpointer setup_center_func(xmlNodePtr node); void action_moveresizeto_startup(void) { - actions_register("MoveResizeTo", setup_func, g_free, run_func, NULL, NULL); -/* 3.4-compatibility */ - actions_register("MoveToCenter", setup_center_func, g_free, run_func, - NULL, NULL); + actions_register("MoveResizeTo", setup_func, g_free, run_func); + /* 3.4-compatibility */ + actions_register("MoveToCenter", setup_center_func, g_free, run_func); } static void parse_coord(xmlNodePtr n, gint *pos, diff --git a/openbox/actions/movetoedge.c b/openbox/actions/movetoedge.c index 51215fd2..e7384dad 100644 --- a/openbox/actions/movetoedge.c +++ b/openbox/actions/movetoedge.c @@ -19,16 +19,12 @@ static gpointer setup_west_func(xmlNodePtr node); void action_movetoedge_startup(void) { - actions_register("MoveToEdge", setup_func, g_free, run_func, NULL, NULL); + actions_register("MoveToEdge", setup_func, g_free, run_func); /* 3.4-compatibility */ - actions_register("MoveToEdgeNorth", setup_north_func, g_free, run_func, - NULL, NULL); - actions_register("MoveToEdgeSouth", setup_south_func, g_free, run_func, - NULL, NULL); - actions_register("MoveToEdgeEast", setup_east_func, g_free, run_func, - NULL, NULL); - actions_register("MoveToEdgeWest", setup_west_func, g_free, run_func, - NULL, NULL); + actions_register("MoveToEdgeNorth", setup_north_func, g_free, run_func); + actions_register("MoveToEdgeSouth", setup_south_func, g_free, run_func); + actions_register("MoveToEdgeEast", setup_east_func, g_free, run_func); + actions_register("MoveToEdgeWest", setup_west_func, g_free, run_func); } static gpointer setup_func(xmlNodePtr node) diff --git a/openbox/actions/omnipresent.c b/openbox/actions/omnipresent.c index 030a0159..4309acc6 100644 --- a/openbox/actions/omnipresent.c +++ b/openbox/actions/omnipresent.c @@ -6,8 +6,7 @@ static gboolean run_func_toggle(ObActionsData *data, gpointer options); void action_omnipresent_startup(void) { - actions_register("ToggleOmnipresent", NULL, NULL, run_func_toggle, - NULL, NULL); + actions_register("ToggleOmnipresent", NULL, NULL, run_func_toggle); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/raise.c b/openbox/actions/raise.c index 6837bce2..f6ac1452 100644 --- a/openbox/actions/raise.c +++ b/openbox/actions/raise.c @@ -6,10 +6,7 @@ static gboolean run_func(ObActionsData *data, gpointer options); void action_raise_startup(void) { - actions_register("Raise", - NULL, NULL, - run_func, - NULL, NULL); + actions_register("Raise", NULL, NULL, run_func); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/raiselower.c b/openbox/actions/raiselower.c index 80fc917f..dbe41d85 100644 --- a/openbox/actions/raiselower.c +++ b/openbox/actions/raiselower.c @@ -5,10 +5,7 @@ static gboolean run_func(ObActionsData *data, gpointer options); void action_raiselower_startup(void) { - actions_register("RaiseLower", - NULL, NULL, - run_func, - NULL, NULL); + actions_register("RaiseLower", NULL, NULL, run_func); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/reconfigure.c b/openbox/actions/reconfigure.c index cef81414..813a1221 100644 --- a/openbox/actions/reconfigure.c +++ b/openbox/actions/reconfigure.c @@ -5,10 +5,7 @@ static gboolean run_func(ObActionsData *data, gpointer options); void action_reconfigure_startup(void) { - actions_register("Reconfigure", - NULL, NULL, - run_func, - NULL, NULL); + actions_register("Reconfigure", NULL, NULL, run_func); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/resize.c b/openbox/actions/resize.c index 47f45f5b..3df44b6c 100644 --- a/openbox/actions/resize.c +++ b/openbox/actions/resize.c @@ -17,7 +17,7 @@ static guint32 pick_corner(gint x, gint y, gint cx, gint cy, gint cw, gint ch, void action_resize_startup(void) { - actions_register("Resize", setup_func, g_free, run_func, NULL, NULL); + actions_register("Resize", setup_func, g_free, run_func); } static gpointer setup_func(xmlNodePtr node) diff --git a/openbox/actions/resizerelative.c b/openbox/actions/resizerelative.c index 5742e1fc..b4db73b7 100644 --- a/openbox/actions/resizerelative.c +++ b/openbox/actions/resizerelative.c @@ -16,8 +16,7 @@ static gboolean run_func(ObActionsData *data, gpointer options); void action_resizerelative_startup(void) { - actions_register("ResizeRelative", setup_func, g_free, run_func, - NULL, NULL); + actions_register("ResizeRelative", setup_func, g_free, run_func); } static gpointer setup_func(xmlNodePtr node) diff --git a/openbox/actions/restart.c b/openbox/actions/restart.c index 47f332b1..01de4f9a 100644 --- a/openbox/actions/restart.c +++ b/openbox/actions/restart.c @@ -12,7 +12,7 @@ static gboolean run_func(ObActionsData *data, gpointer options); void action_restart_startup(void) { - actions_register("Restart", setup_func, free_func, run_func, NULL, NULL); + actions_register("Restart", setup_func, free_func, run_func); } static gpointer setup_func(xmlNodePtr node) diff --git a/openbox/actions/shade.c b/openbox/actions/shade.c index 2342067f..502781dd 100644 --- a/openbox/actions/shade.c +++ b/openbox/actions/shade.c @@ -7,9 +7,9 @@ static gboolean run_func_toggle(ObActionsData *data, gpointer options); void action_shade_startup(void) { - actions_register("Shade", NULL, NULL, run_func_on, NULL, NULL); - actions_register("Unshade", NULL, NULL, run_func_off, NULL, NULL); - actions_register("ToggleShade", NULL, NULL, run_func_toggle, NULL, NULL); + actions_register("Shade", NULL, NULL, run_func_on); + actions_register("Unshade", NULL, NULL, run_func_off); + actions_register("ToggleShade", NULL, NULL, run_func_toggle); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/shadelowerraise.c b/openbox/actions/shadelowerraise.c index 1070a965..414e2817 100644 --- a/openbox/actions/shadelowerraise.c +++ b/openbox/actions/shadelowerraise.c @@ -7,8 +7,8 @@ static gboolean run_func_ur(ObActionsData *data, gpointer options); void action_shadelowerraise_startup() { /* 3.4-compatibility */ - actions_register("ShadeLower", NULL, NULL, run_func_sl, NULL, NULL); - actions_register("UnshadeRaise", NULL, NULL, run_func_ur, NULL, NULL); + actions_register("ShadeLower", NULL, NULL, run_func_sl); + actions_register("UnshadeRaise", NULL, NULL, run_func_ur); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/showdesktop.c b/openbox/actions/showdesktop.c index c9ba86c4..6dc77d5e 100644 --- a/openbox/actions/showdesktop.c +++ b/openbox/actions/showdesktop.c @@ -5,10 +5,7 @@ static gboolean run_func(ObActionsData *data, gpointer options); void action_showdesktop_startup(void) { - actions_register("ToggleShowDesktop", - NULL, NULL, - run_func, - NULL, NULL); + actions_register("ToggleShowDesktop", NULL, NULL, run_func); } /* Always return FALSE because its not interactive */ diff --git a/openbox/actions/showmenu.c b/openbox/actions/showmenu.c index 9590bd15..546be5a8 100644 --- a/openbox/actions/showmenu.c +++ b/openbox/actions/showmenu.c @@ -12,8 +12,7 @@ static gboolean run_func(ObActionsData *data, gpointer options); void action_showmenu_startup(void) { - actions_register("ShowMenu", setup_func, free_func, run_func, - NULL, NULL); + actions_register("ShowMenu", setup_func, free_func, run_func); } static gpointer setup_func(xmlNodePtr node) diff --git a/openbox/actions/unfocus.c b/openbox/actions/unfocus.c index 22a9378c..3db00ca3 100644 --- a/openbox/actions/unfocus.c +++ b/openbox/actions/unfocus.c @@ -5,7 +5,7 @@ static gboolean run_func(ObActionsData *data, gpointer options); void action_unfocus_startup(void) { - actions_register("Unfocus", NULL, NULL, run_func, NULL, NULL); + actions_register("Unfocus", NULL, NULL, run_func); } /* Always return FALSE because its not interactive */ |
