#include "screen.h"
#include "client.h"
#include "focus.h"
+#include "config.h"
#include "gettext.h"
#include <glib.h>
for (it = focus_order[d->desktop], i = 0; it; it = g_list_next(it), ++i) {
ObClient *c = it->data;
- if (client_normal(c)) {
- GSList *acts;
+ if (client_normal(c) && !c->skip_taskbar) {
+ GSList *acts = NULL;
ObAction* act;
ObMenuEntry *e;
- ObClientIcon *icon;
+ const ObClientIcon *icon;
empty = FALSE;
act = action_from_string("Activate",
OB_USER_ACTION_MENU_SELECTION);
act->data.activate.any.c = c;
- acts = g_slist_prepend(NULL, act);
+ acts = g_slist_append(acts, act);
+ act = action_from_string("Desktop",
+ OB_USER_ACTION_MENU_SELECTION);
+ act->data.desktop.desk = d->desktop;
+ acts = g_slist_append(acts, act);
e = menu_add_normal(menu, i,
(c->iconic ? c->icon_title : c->title), acts);
- if ((icon = client_icon(c, 32, 32))) {
+ if (config_menu_client_list_icons && (icon = client_icon(c, 32, 32))) {
e->data.normal.icon_width = icon->width;
e->data.normal.icon_height = icon->height;
e->data.normal.icon_data = icon->data;
if (empty) {
/* no entries */
- GSList *acts;
+ GSList *acts = NULL;
ObAction* act;
+ ObMenuEntry *e;
+
act = action_from_string("Desktop", OB_USER_ACTION_MENU_SELECTION);
act->data.desktop.desk = d->desktop;
- acts = g_slist_prepend(NULL, act);
- menu_add_normal(menu, 0, _("Go there..."), acts);
+ acts = g_slist_append(acts, act);
+ e = menu_add_normal(menu, 0, _("Go there..."), acts);
+ if (d->desktop == screen_desktop)
+ e->data.normal.enabled = FALSE;
}
}