Task *task_active;
Task *task_drag;
+int taskbar_enabled;
guint win_hash(gconstpointer key) { return (guint)*((Window*)key); }
gboolean win_compare(gconstpointer a, gconstpointer b) { return (*((Window*)a) == *((Window*)b)); }
win_to_task_table = 0;
urgent_timeout = 0;
urgent_list = 0;
+ taskbar_enabled = 0;
}
void cleanup_taskbar()
tskbar = &panel->taskbar[j];
memcpy(&tskbar->area, &panel->g_taskbar, sizeof(Area));
tskbar->desktop = j;
- if (j == server.desktop && panel->g_taskbar.use_active)
+ if (j == server.desktop)
tskbar->area.bg = panel->g_taskbar.bg_active;
}
}
GPtrArray* task_get_tasks(Window win)
{
- if (win_to_task_table)
+ if (win_to_task_table && taskbar_enabled)
return g_hash_table_lookup(win_to_task_table, &win);
else
return 0;
Window *win;
int num_results, i;
+ if (!taskbar_enabled) return;
win = server_get_property (server.root_win, server.atom._NET_CLIENT_LIST, XA_WINDOW, &num_results);
if (!win) return;
GSList *l;
int task_count, border_width;
- //printf("resize_taskbar : posx et width des taches\n");
- taskbar->area.redraw = 1;
-
+// taskbar->area.redraw = 1;
border_width = taskbar->area.bg->border.width;
if (panel_horizontal) {
for (l = taskbar->area.list; l ; l = l->next) {
tsk = l->data;
if (!tsk->area.on_screen) continue;
- set_task_redraw(tsk); // always redraw task, because the background could have changed (taskbar_active_id)
+ //set_task_redraw(tsk); // always redraw task, because the background could have changed (taskbar_active_id)
tsk->area.width = pixel_width;
// TODO : move later (when posx is known)
// long value[] = { panel->posx+x, panel->posy, pixel_width, panel->area.height };
for (l = taskbar->area.list; l ; l = l->next) {
tsk = l->data;
if (!tsk->area.on_screen) continue;
- set_task_redraw(tsk); // always redraw task, because the background could have changed (taskbar_active_id)
+ //set_task_redraw(tsk); // always redraw task, because the background could have changed (taskbar_active_id)
tsk->area.height = pixel_height;
// TODO : move later (when posy is known)
// long value[] = { panel->posx, panel->posy+y, panel->area.width, pixel_height };
}
}
}
+
return 0;
}
+
+void visible_taskbar(void *p)
+{
+ Panel *panel =(Panel*)p;
+ int j;
+
+ Taskbar *taskbar;
+ for (j=0 ; j < panel->nb_desktop ; j++) {
+ taskbar = &panel->taskbar[j];
+ if (panel_mode != MULTI_DESKTOP && taskbar->desktop != server.desktop) {
+ // SINGLE_DESKTOP and not current desktop
+ taskbar->area.on_screen = 0;
+ }
+ else {
+ taskbar->area.on_screen = 1;
+ }
+ }
+ panel_refresh = 1;
+}
+