X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Faction.c;h=0a969a86607f69fe3356e7ae98f87bf7ed60975e;hb=11e28eaa5c9e3ace49758345eac2f6c4b701659b;hp=6d1e0a645c9f068b2f3c4635d46807fe084892ee;hpb=e5f27bd25ecc3fbabbba8766168211d71d0d0397;p=chaz%2Fopenbox diff --git a/openbox/action.c b/openbox/action.c index 6d1e0a64..0a969a86 100644 --- a/openbox/action.c +++ b/openbox/action.c @@ -698,6 +698,9 @@ ObAction *action_from_string(char *name, ObUserAction uact) a = action_new(actionstrings[i].func, uact); if (actionstrings[i].setup) actionstrings[i].setup(&a, uact); + /* only key bindings can be interactive. thus saith the xor. */ + if (uact != OB_USER_ACTION_KEYBOARD_KEY) + a->data.any.interactive = FALSE; break; } if (!exist) @@ -764,7 +767,6 @@ ObAction *action_parse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, } void action_run_full(ObAction *a, struct _ObClient *c, - ObFrameContext context, guint state, guint button, gint x, gint y, gboolean cancel, gboolean done) { @@ -781,7 +783,7 @@ void action_run_full(ObAction *a, struct _ObClient *c, a->data.inter.cancel = cancel; a->data.inter.final = done; if (!(cancel || done)) - keyboard_interactive_grab(state, c, context, a); + keyboard_interactive_grab(state, c, a); } a->func(&a->data); @@ -798,6 +800,7 @@ void action_execute(union ActionData *data) g_warning("failed to execute '%s': %s", cmd, e->message); } + g_free(cmd); } else { g_warning("failed to convert '%s' from utf8", data->execute.path); } @@ -1229,11 +1232,12 @@ void action_growtoedge(union ActionData *data) { int x, y, width, height, dest; ObClient *c = data->diraction.any.c; - Rect *a = screen_area(c->desktop); + Rect *a; if (!c) return; + a = screen_area(c->desktop); x = c->frame->area.x; y = c->frame->area.y; width = c->frame->area.width;