- if (!interactive_states) {
- if (!grab_keyboard(TRUE))
- return;
- if (!grab_pointer(TRUE, OB_CURSOR_NONE)) {
- grab_keyboard(FALSE);
- return;
- }
- }
-
- s = g_new(ObInteractiveState, 1);
-
- s->state = state;
- s->client = client;
- s->actions = g_slist_append(NULL, action);
-
- interactive_states = g_slist_append(interactive_states, s);
+ alist = g_slist_append(NULL, istate.action);
+ action_run_interactive(alist, istate.client, state, time, cancel, TRUE);
+ g_slist_free(alist);