X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Factions%2Fmaximize.c;h=db7c36bb8aaebb9fd9d47a7eea41768bb40d5662;hb=HEAD;hp=45e8b38ed55801812a61f897c473fbd860c5db08;hpb=5f04ca85ef6a2ebc2d66842e261a676691e9b4de;p=chaz%2Fopenbox diff --git a/openbox/actions/maximize.c b/openbox/actions/maximize.c index 45e8b38e..db7c36bb 100644 --- a/openbox/actions/maximize.c +++ b/openbox/actions/maximize.c @@ -13,18 +13,39 @@ typedef struct { } Options; static gpointer setup_func(xmlNodePtr node); +static void free_func(gpointer o); static gboolean run_func_on(ObActionsData *data, gpointer options); static gboolean run_func_off(ObActionsData *data, gpointer options); static gboolean run_func_toggle(ObActionsData *data, gpointer options); +/* 3.4-compatibility */ +static gpointer setup_both_func(xmlNodePtr node); +static gpointer setup_horz_func(xmlNodePtr node); +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, free_func, run_func_on); + actions_register("Unmaximize", setup_func, free_func, run_func_off); + actions_register("ToggleMaximize", setup_func, free_func, run_func_toggle); + /* 3.4-compatibility */ + actions_register("MaximizeFull", setup_both_func, free_func, + run_func_on); + actions_register("UnmaximizeFull", setup_both_func, free_func, + run_func_off); + actions_register("ToggleMaximizeFull", setup_both_func, free_func, + run_func_toggle); + actions_register("MaximizeHorz", setup_horz_func, free_func, + run_func_on); + actions_register("UnmaximizeHorz", setup_horz_func, free_func, + run_func_off); + actions_register("ToggleMaximizeHorz", setup_horz_func, free_func, + run_func_toggle); + actions_register("MaximizeVert", setup_vert_func, free_func, + run_func_on); + actions_register("UnmaximizeVert", setup_vert_func, free_func, + run_func_off); + actions_register("ToggleMaximizeVert", setup_vert_func, free_func, + run_func_toggle); } static gpointer setup_func(xmlNodePtr node) @@ -32,11 +53,11 @@ static gpointer setup_func(xmlNodePtr node) xmlNodePtr n; Options *o; - o = g_new0(Options, 1); + o = g_slice_new0(Options); o->dir = BOTH; - if ((n = obt_parse_find_node(node, "direction"))) { - gchar *s = obt_parse_node_string(n); + if ((n = obt_xml_find_node(node, "direction"))) { + gchar *s = obt_xml_node_string(n); if (!g_ascii_strcasecmp(s, "vertical") || !g_ascii_strcasecmp(s, "vert")) o->dir = VERT; @@ -49,6 +70,11 @@ static gpointer setup_func(xmlNodePtr node) return o; } +static void free_func(gpointer o) +{ + g_slice_free(Options, o); +} + /* Always return FALSE because its not interactive */ static gboolean run_func_on(ObActionsData *data, gpointer options) { @@ -89,3 +115,26 @@ static gboolean run_func_toggle(ObActionsData *data, gpointer options) } return FALSE; } + +/* 3.4-compatibility */ +static gpointer setup_both_func(xmlNodePtr node) +{ + Options *o = g_slice_new0(Options); + o->dir = BOTH; + return o; +} + +static gpointer setup_horz_func(xmlNodePtr node) +{ + Options *o = g_slice_new0(Options); + o->dir = HORZ; + return o; +} + +static gpointer setup_vert_func(xmlNodePtr node) +{ + Options *o = g_slice_new0(Options); + o->dir = VERT; + return o; +} +