/* Always return FALSE because its not interactive */ static gboolean run_func(ObActionsData *data, gpointer options) { Options *o = options; if (data->client) { /* ob_debug("button %d focusable %d context %d %d %d\n", data->button, client_mouse_focusable(data->client), data->context, OB_FRAME_CONTEXT_CLIENT, OB_FRAME_CONTEXT_FRAME); */ if (data->button == 0 || client_mouse_focusable(data->client) || (data->context != OB_FRAME_CONTEXT_CLIENT && data->context != OB_FRAME_CONTEXT_FRAME)) { if (o->stop_int) actions_interactive_cancel_act(); actions_client_move(data, TRUE); client_activate(data->client, TRUE, o->here, FALSE, FALSE, TRUE); actions_client_move(data, FALSE); } } else if (data->context == OB_FRAME_CONTEXT_DESKTOP) { if (o->stop_int) actions_interactive_cancel_act(); /* focus action on the root window. make keybindings work for this openbox instance, but don't focus any specific client */ focus_nothing(); } return FALSE; }
static gboolean unfocus_delay_func(gpointer data) { struct focus_delay_data *d = data; Time old = event_curtime; event_curtime = d->time; event_curserial = d->serial; focus_nothing(); event_curtime = old; return FALSE; }