#include "panel.h"
+/* win_to_task_table holds for every Window an array of tasks. Usually the array contains only one
+ element. However for omnipresent windows (windows which are visible in every taskbar) the array
+ contains to every Task* on each panel a pointer (i.e. GPtrArray.len == server.nb_desktop)
+*/
GHashTable* win_to_task_table = 0;
guint win_hash(gconstpointer key) { return (guint)*((Window*)key); }
gboolean win_compare(gconstpointer a, gconstpointer b) { return (*((Window*)a) == *((Window*)b)); }
-void free_ptr_array(gpointer* data) { g_ptr_array_free(data, 1); }
+void free_ptr_array(gpointer data) { g_ptr_array_free(data, 1); }
void init_taskbar()
{
tsk = l->data;
if (!tsk->area.on_screen) continue;
tsk->area.posx = x;
- if (tsk->area.width != pixel_width) set_task_redraw(tsk);
+ set_task_redraw(tsk); // always redraw task, because the background could have changed (taskbar_active_id)
tsk->area.width = pixel_width;
if (modulo_width) {
tsk->area.width++;
tsk = l->data;
if (!tsk->area.on_screen) continue;
tsk->area.posy = y;
- if (tsk->area.height != pixel_height) set_task_redraw(tsk);
+ set_task_redraw(tsk); // always redraw task, because the background could have changed (taskbar_active_id)
tsk->area.height = pixel_height;
if (modulo_height) {
tsk->area.height++;