X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Factions.c;h=463962a25c26410a91f63f7874e3e9cb787f6af8;hb=4418e6988b5ea80acf0dee4f27a43b27a1fdf48f;hp=35d5cc25f095c23f2acd78806ee00d7d63a31544;hpb=2202f11f239bb33e49c05aa73b51e7418748cb6b;p=chaz%2Fopenbox diff --git a/openbox/actions.c b/openbox/actions.c index 35d5cc25..463962a2 100644 --- a/openbox/actions.c +++ b/openbox/actions.c @@ -102,11 +102,12 @@ ObActionsDefinition* do_register(const gchar *name, return NULL; } - def = g_new(ObActionsDefinition, 1); + def = g_slice_new(ObActionsDefinition); def->ref = 1; def->name = g_strdup(name); def->free = free; def->run = run; + def->shutdown = NULL; registered = g_slist_prepend(registered, def); return def; @@ -163,7 +164,7 @@ static void actions_definition_unref(ObActionsDefinition *def) { if (def && --def->ref == 0) { g_free(def->name); - g_free(def); + g_slice_free(ObActionsDefinition, def); } } @@ -183,7 +184,7 @@ static ObActionsAct* actions_build_act_from_string(const gchar *name) /* if we found the action */ if (def) { - act = g_new(ObActionsAct, 1); + act = g_slice_new(ObActionsAct); act->ref = 1; act->def = def; actions_definition_ref(act->def); @@ -267,7 +268,7 @@ void actions_act_unref(ObActionsAct *act) act->def->free(act->options); /* unref the definition */ actions_definition_unref(act->def); - g_free(act); + g_slice_free(ObActionsAct, act); } } @@ -367,7 +368,7 @@ static gboolean actions_interactive_begin_act(ObActionsAct *act, guint state) interactive_act = act; actions_act_ref(interactive_act); - interactive_initial_state = state; + interactive_initial_state = obt_keyboard_only_modmasks(state); /* if using focus_delay, stop the timer now so that focus doesn't go moving on us, which would kill the action */ @@ -397,6 +398,7 @@ gboolean actions_interactive_input_event(XEvent *e) gboolean used = FALSE; if (interactive_act) { if (!interactive_act->i_input(interactive_initial_state, e, + grab_input_context(), interactive_act->options, &used)) { used = TRUE; /* if it cancelled the action then it has to of