- ObAction *a;
-
- if (self->data.normal.actions) {
- a = self->data.normal.actions->data;
- action_run(self->data.normal.actions, a->data.any.c, state, time);
+ if (self->id == ADD_DESKTOP) {
+ screen_add_desktop(FALSE);
+ menu_frame_hide_all();
+ }
+ else if (self->id == REMOVE_DESKTOP) {
+ screen_remove_desktop(FALSE);
+ menu_frame_hide_all();
+ }
+ else {
+ ObClient *t = self->data.normal.data;
+ if (t) { /* it's set to NULL if its destroyed */
+ client_activate(t, FALSE, TRUE, TRUE, TRUE);
+ /* if the window is omnipresent then we need to go to its
+ desktop */
+ if (t->desktop == DESKTOP_ALL)
+ screen_set_desktop(self->id, FALSE);
+ }
+ else
+ screen_set_desktop(self->id, TRUE);