X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Factions.c;h=cfe0bddededc336fc0f7b4f6065a59e14de3e894;hb=2c50fae3479172c869b59f9128edc9a6eef69946;hp=0f37526773efd88199e24a29a236f2545889199f;hpb=1d685c0dfdc12ef3910bcd91edfeee13239e2344;p=chaz%2Fopenbox diff --git a/openbox/actions.c b/openbox/actions.c index 0f375267..cfe0bdde 100644 --- a/openbox/actions.c +++ b/openbox/actions.c @@ -248,7 +248,9 @@ void actions_run_acts(GSList *acts, 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) @@ -293,6 +295,11 @@ static gboolean actions_interactive_begin_act(ObActionsAct *act, guint state) 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