actions_setup_data(&data, uact, state, x, y, button, con, client);
- if (actions_act_is_interactive(act) &&
- (!interactive_act || interactive_act->def != act->def))
- {
- ok = actions_interactive_begin_act(act, state);
+ if (!interactive_act || interactive_act->def != act->def) {
+ /* cancel the old one */
+ if (interactive_act)
+ actions_interactive_cancel_act();
+ if (actions_act_is_interactive(act))
+ ok = actions_interactive_begin_act(act, state);
}
/* fire the action's run function with this data */
static gboolean actions_interactive_begin_act(ObActionsAct *act, guint state)
{
- /* cancel the old one */
- if (interactive_act)
- actions_interactive_cancel_act();
-
if (grab_keyboard()) {
interactive_act = act;
actions_act_ref(interactive_act);