From: Mikael Magnusson Date: Sat, 22 Dec 2007 18:26:26 +0000 (+0100) Subject: Merge branch 'backport' into 3.4-working X-Git-Tag: release-3.4.5~1 X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=a3110ae68f0dd91fb1b1a5624f7f6d54c891b1f4;p=dana%2Fopenbox.git Merge branch 'backport' into 3.4-working --- a3110ae68f0dd91fb1b1a5624f7f6d54c891b1f4 diff --cc openbox/actions/desktop.c index 7ff75afe,69275252..31073895 --- a/openbox/actions/desktop.c +++ b/openbox/actions/desktop.c @@@ -26,138 -26,73 +26,138 @@@ typedef struct gboolean follow; } Options; -static gpointer setup_go_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node); -static gpointer setup_send_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node); +static gpointer setup_go_last_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_send_last_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_go_abs_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_send_abs_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_go_next_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_send_next_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_go_prev_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_send_prev_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_go_left_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_send_left_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_go_right_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_send_right_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_go_up_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_send_up_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_go_down_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_send_down_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); static gboolean run_func(ObActionsData *data, gpointer options); - void action_desktop_startup() + 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("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); } -static gpointer setup_go_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node) +static gpointer setup_follow(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) { xmlNodePtr n; - Options *o; + Options *o = g_new0(Options, 1); + o->send = TRUE; + o->follow = TRUE; + if ((n = parse_find_node("follow", node))) + o->follow = parse_bool(doc, n); + return o; +} - o = g_new0(Options, 1); - /* don't go anywhere if theres no options given */ +static gpointer setup_go_last_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node) +{ + Options *o = g_new0(Options, 1); + o->type = LAST; + return o; +} + +static gpointer setup_send_last_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node) +{ + Options *o = setup_follow(i, doc, node); + o->type = LAST; + return o; +} + +static gpointer setup_go_abs_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node) +{ + xmlNodePtr n; + Options *o = g_new0(Options, 1); o->type = ABSOLUTE; - o->abs.desktop = screen_desktop; - /* wrap by default - it's handy! */ - o->rel.wrap = TRUE; + if ((n = parse_find_node("desktop", node))) + o->abs.desktop = parse_int(doc, n) - 1; + else + o->abs.desktop = screen_desktop; + return o; +} - if ((n = parse_find_node("to", node))) { - gchar *s = parse_string(doc, n); - if (!g_ascii_strcasecmp(s, "last")) - o->type = LAST; - else if (!g_ascii_strcasecmp(s, "next")) { - o->type = RELATIVE; - o->rel.linear = TRUE; - o->rel.dir = OB_DIRECTION_EAST; - } - else if (!g_ascii_strcasecmp(s, "previous")) { - o->type = RELATIVE; - o->rel.linear = TRUE; - o->rel.dir = OB_DIRECTION_WEST; - } - else if (!g_ascii_strcasecmp(s, "north") || - !g_ascii_strcasecmp(s, "up")) { - o->type = RELATIVE; - o->rel.dir = OB_DIRECTION_NORTH; - } - else if (!g_ascii_strcasecmp(s, "south") || - !g_ascii_strcasecmp(s, "down")) { - o->type = RELATIVE; - o->rel.dir = OB_DIRECTION_SOUTH; - } - else if (!g_ascii_strcasecmp(s, "west") || - !g_ascii_strcasecmp(s, "left")) { - o->type = RELATIVE; - o->rel.dir = OB_DIRECTION_WEST; - } - else if (!g_ascii_strcasecmp(s, "east") || - !g_ascii_strcasecmp(s, "right")) { - o->type = RELATIVE; - o->rel.dir = OB_DIRECTION_EAST; - } - else { - o->type = ABSOLUTE; - o->abs.desktop = parse_int(doc, n) - 1; - } - g_free(s); - } +static gpointer setup_send_abs_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node) +{ + xmlNodePtr n; + Options *o = setup_follow(i, doc, node); + o->type = ABSOLUTE; + if ((n = parse_find_node("desktop", node))) + o->abs.desktop = parse_int(doc, n) - 1; + else + o->abs.desktop = screen_desktop; + return o; +} + +static void setup_rel(Options *o, ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node, gboolean lin, ObDirection dir) +{ + xmlNodePtr n; + + o->type = RELATIVE; + o->rel.linear = lin; + o->rel.dir = dir; + o->rel.wrap = TRUE; if ((n = parse_find_node("wrap", node))) o->rel.wrap = parse_bool(doc, n); diff --cc openbox/actions/directionalwindows.c index fa8757ae,707659eb..71c0d37d --- a/openbox/actions/directionalwindows.c +++ b/openbox/actions/directionalwindows.c @@@ -60,40 -31,12 +60,40 @@@ static void i_cancel_func(gpointer static void end_cycle(gboolean cancel, guint state, Options *o); - void action_directionalwindows_startup() + void action_directionalwindows_startup(void) { - actions_register("DirectionalCycleWindows", setup_cycle_func, free_func, - run_func, i_input_func, i_cancel_func); - actions_register("DirectionalTargetWindow", setup_target_func, free_func, - run_func, NULL, NULL); + 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("DirectionalTargetNorth", setup_north_target_func, + free_func, run_func, i_input_func, i_cancel_func); + actions_register("DirectionalTargetSouth", setup_south_target_func, + free_func, run_func, i_input_func, i_cancel_func); + actions_register("DirectionalTargetWest", setup_west_target_func, + free_func, run_func, i_input_func, i_cancel_func); + actions_register("DirectionalTargetEast", setup_east_target_func, + free_func, run_func, i_input_func, i_cancel_func); + actions_register("DirectionalTargetNorthWest", setup_northwest_target_func, + free_func, run_func, i_input_func, i_cancel_func); + actions_register("DirectionalTargetNorthEast", setup_northeast_target_func, + free_func, run_func, i_input_func, i_cancel_func); + actions_register("DirectionalTargetSouthWest", setup_southwest_target_func, + free_func, run_func, i_input_func, i_cancel_func); + actions_register("DirectionalTargetSouthEast", setup_southeast_target_func, + free_func, run_func, i_input_func, i_cancel_func); } static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) diff --cc openbox/actions/growtoedge.c index 11ea2fa8,69b8ef77..a18390df --- a/openbox/actions/growtoedge.c +++ b/openbox/actions/growtoedge.c @@@ -9,25 -9,16 +9,25 @@@ typedef struct ObDirection dir; } Options; -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); -static void free_func(gpointer options); +static gpointer setup_north_func(ObParseInst *i, + xmlDocPtr doc, xmlNodePtr node); +static gpointer setup_south_func(ObParseInst *i, + xmlDocPtr doc, xmlNodePtr node); +static gpointer setup_east_func(ObParseInst *i, + xmlDocPtr doc, xmlNodePtr node); +static gpointer setup_west_func(ObParseInst *i, + xmlDocPtr doc, xmlNodePtr node); static gboolean run_func(ObActionsData *data, gpointer options); - void action_growtoedge_startup() + void action_growtoedge_startup(void) { - actions_register("GrowToEdge", - setup_func, - free_func, - run_func, + 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); } diff --cc openbox/actions/layer.c index 28a69d83,92fa4806..6a8e6987 --- a/openbox/actions/layer.c +++ b/openbox/actions/layer.c @@@ -9,15 -9,11 +9,15 @@@ typedef struct static gpointer setup_func_top(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); static gpointer setup_func_bottom(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); -static gpointer setup_func_send(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node); +static gpointer setup_sendtop_func(ObParseInst *i, + xmlDocPtr doc, xmlNodePtr node); +static gpointer setup_sendbottom_func(ObParseInst *i, + xmlDocPtr doc, xmlNodePtr node); +static gpointer setup_sendnormal_func(ObParseInst *i, + xmlDocPtr doc, xmlNodePtr node); static gboolean run_func(ObActionsData *data, gpointer options); - void action_layer_startup() + void action_layer_startup(void) { actions_register("ToggleAlwaysOnTop", setup_func_top, g_free, run_func, NULL, NULL); diff --cc openbox/actions/maximize.c index 4ab6dd7f,bb6f470a..fa896ede --- a/openbox/actions/maximize.c +++ b/openbox/actions/maximize.c @@@ -22,46 -17,35 +22,46 @@@ static gboolean run_func_on(ObActionsDa static gboolean run_func_off(ObActionsData *data, gpointer options); static gboolean run_func_toggle(ObActionsData *data, gpointer options); - void action_maximize_startup() + 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("MaximizeFull", setup_both_func, g_free, + run_func_on, NULL, NULL); + actions_register("UnmaximizeFull", setup_both_func, g_free, + run_func_off, NULL, NULL); + actions_register("ToggleMaximizeFull", setup_both_func, g_free, + run_func_toggle, NULL, NULL); + actions_register("MaximizeHorz", setup_horz_func, g_free, + run_func_on, NULL, NULL); + actions_register("UnmaximizeHorz", setup_horz_func, g_free, + run_func_off, NULL, NULL); + actions_register("ToggleMaximizeHorz", setup_horz_func, g_free, + run_func_toggle, NULL, NULL); + actions_register("MaximizeVert", setup_vert_func, g_free, + run_func_on, NULL, NULL); + actions_register("UnmaximizeVert", setup_vert_func, g_free, + run_func_off, NULL, NULL); + actions_register("ToggleMaximizeVert", setup_vert_func, g_free, + run_func_toggle, NULL, NULL); } -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) +static gpointer setup_both_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) { - xmlNodePtr n; - Options *o; - - o = g_new0(Options, 1); + Options *o = g_new0(Options, 1); o->dir = BOTH; + return o; +} - if ((n = parse_find_node("direction", node))) { - gchar *s = parse_string(doc, n); - if (!g_ascii_strcasecmp(s, "vertical") || - !g_ascii_strcasecmp(s, "vert")) - o->dir = VERT; - else if (!g_ascii_strcasecmp(s, "horizontal") || - !g_ascii_strcasecmp(s, "horz")) - o->dir = HORZ; - g_free(s); - } +static gpointer setup_horz_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) +{ + Options *o = g_new0(Options, 1); + o->dir = HORZ; + return o; +} +static gpointer setup_vert_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) +{ + Options *o = g_new0(Options, 1); + o->dir = VERT; return o; } diff --cc openbox/actions/movetoedge.c index f09bfd83,5941bde9..91c95ada --- a/openbox/actions/movetoedge.c +++ b/openbox/actions/movetoedge.c @@@ -9,25 -9,16 +9,25 @@@ typedef struct ObDirection dir; } Options; -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); -static void free_func(gpointer options); +static gpointer setup_north_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_south_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_east_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_west_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); static gboolean run_func(ObActionsData *data, gpointer options); - void action_movetoedge_startup() + void action_movetoedge_startup(void) { - actions_register("MoveToEdge", - setup_func, - free_func, - run_func, + 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); } diff --cc po/en@boldquot.po index 97edf560,1bf3d1ea..2ad26d89 --- a/po/en@boldquot.po +++ b/po/en@boldquot.po @@@ -30,10 -30,10 +30,10 @@@ # msgid "" msgstr "" -"Project-Id-Version: openbox 3.999.0\n" +"Project-Id-Version: openbox 3.4.3\n" "Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n" - "POT-Creation-Date: 2007-07-22 08:25-0400\n" - "PO-Revision-Date: 2007-07-22 08:25-0400\n" + "POT-Creation-Date: 2007-11-12 19:12+0100\n" + "PO-Revision-Date: 2007-11-12 19:12+0100\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "MIME-Version: 1.0\n" diff --cc po/en@quot.po index e47f7c3b,acc49c07..b5eae955 --- a/po/en@quot.po +++ b/po/en@quot.po @@@ -27,10 -27,10 +27,10 @@@ # msgid "" msgstr "" -"Project-Id-Version: openbox 3.999.0\n" +"Project-Id-Version: openbox 3.4.3\n" "Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n" - "POT-Creation-Date: 2007-07-22 08:25-0400\n" - "PO-Revision-Date: 2007-07-22 08:25-0400\n" + "POT-Creation-Date: 2007-11-12 19:12+0100\n" + "PO-Revision-Date: 2007-11-12 19:12+0100\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "MIME-Version: 1.0\n"