actions_setup_data(&data, uact, state, x, y, button, con, client);
- if (!interactive_act || interactive_act->def != act->def) {
+ /* if they have the same run function, then we'll assume they are
+ cooperating and not cancel eachother out */
+ if (!interactive_act || interactive_act->def->run != act->def->run) {
if (actions_act_is_interactive(act)) {
/* cancel the old one */
if (interactive_act)
actions_act_ref(interactive_act);
interactive_initial_state = state;
+
+ /* if using focus_delay, stop the timer now so that focus doesn't go
+ moving on us, which would kill the action */
+ event_halt_focus_delay();
+
return TRUE;
}
else