a time! */
if (uact == OB_USER_ACTION_MENU_SELECTION) {
action_unref(*a);
- a = NULL;
+ *a = NULL;
}
}
a = action_new(actionstrings[i].func);
if (actionstrings[i].setup)
actionstrings[i].setup(&a, uact);
- INTERACTIVE_LIMIT(a, uact);
+ if (a)
+ INTERACTIVE_LIMIT(a, uact);
break;
}
if (!exist)
if (!(cancel || done))
if (!keyboard_interactive_grab(state, a->data.any.c, a))
continue;
+ }
+ /* XXX UGLY HACK race with motion event starting a move and the
+ button release gettnig processed first. answer: don't queue
+ moveresize starts. UGLY HACK XXX */
+ if (a->data.any.interactive || a->func == action_moveresize) {
/* interactive actions are not queued */
a->func(&a->data);
} else
if (!g_spawn_command_line_async(cmd, &e)) {
g_warning("failed to execute '%s': %s",
cmd, e->message);
+ g_error_free(e);
}
g_free(cmd);
} else {