GSList *actions;
} Options;
+static gboolean cycling = FALSE;
+
static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node);
static void free_func(gpointer options);
static gboolean run_func(ObActionsData *data, gpointer options);
TRUE,
o->dialog,
FALSE, FALSE);
+ cycling = TRUE;
return TRUE;
}
static void i_cancel_func(gpointer options)
{
- end_cycle(TRUE, 0, options);
+ /* we get cancelled when we move focus, but we're not cycling anymore, so
+ just ignore that */
+ if (cycling)
+ end_cycle(TRUE, 0, options);
}
static void end_cycle(gboolean cancel, guint state, Options *o)
actions_run_acts(o->actions, OB_USER_ACTION_KEYBOARD_KEY,
state, -1, -1, 0, OB_FRAME_CONTEXT_NONE, ft);
}
+ cycling = FALSE;
}