X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=openbox%2Fclient_list_menu.c;h=2d62c3e9ff05707b6fcac292f4c3b187584b149b;hb=0e3ce9e407ed8e3fb554c0b25b65c0e8146bd1c6;hp=ca4534baec1c1c3db96c410af0e872954805475c;hpb=07126124c9242a5a20883c3145464730e50afe94;p=chaz%2Fopenbox diff --git a/openbox/client_list_menu.c b/openbox/client_list_menu.c index ca4534ba..2d62c3e9 100644 --- a/openbox/client_list_menu.c +++ b/openbox/client_list_menu.c @@ -54,9 +54,8 @@ static gboolean desk_menu_update(ObMenuFrame *frame, gpointer data) for (it = focus_order; it; it = g_list_next(it)) { ObClient *c = it->data; - if (client_normal(c) && (!c->skip_taskbar || c->iconic) && - (c->desktop == d->desktop || c->desktop == DESKTOP_ALL)) - { + if (focus_valid_target(c, d->desktop, + TRUE, TRUE, FALSE, FALSE, FALSE, FALSE)) { ObMenuEntry *e; empty = FALSE; @@ -70,7 +69,7 @@ static gboolean desk_menu_update(ObMenuFrame *frame, gpointer data) e = menu_add_normal(menu, d->desktop, c->title, NULL, FALSE); } - if (config_menu_client_list_icons) { + if (config_menu_show_icons) { e->data.normal.icon = client_icon(c); RrImageRef(e->data.normal.icon); e->data.normal.icon_alpha = c->iconic ? OB_ICONIC_ALPHA : 0xff; @@ -101,10 +100,12 @@ static void desk_menu_execute(ObMenuEntry *self, ObMenuFrame *f, { ObClient *t = self->data.normal.data; if (t) { /* it's set to NULL if its destroyed */ - client_activate(t, TRUE, TRUE, TRUE, TRUE); + gboolean here = state & ShiftMask; + + client_activate(t, TRUE, here, TRUE, TRUE, TRUE); /* if the window is omnipresent then we need to go to its desktop */ - if (t->desktop == DESKTOP_ALL) + if (!here && t->desktop == DESKTOP_ALL) screen_set_desktop(self->id, FALSE); } else