]> Dogcows Code - chaz/tint2/blobdiff - src/taskbar/taskbar.c
*fix* test with config_background_mask rather than config_font_mask, since we check...
[chaz/tint2] / src / taskbar / taskbar.c
index f05f067496a6a6f67dd50d3a937fc2a982f12e1e..7ce297568b79ead178cb5bd595408be3a0f942f9 100644 (file)
@@ -177,7 +177,7 @@ void init_taskbar_panel(void *p)
        if ((panel->g_task.config_font_mask & (1<<TASK_ACTIVE)) == 0) panel->g_task.font[TASK_ACTIVE] = panel->g_task.font[TASK_NORMAL];
        if ((panel->g_task.config_font_mask & (1<<TASK_ICONIFIED)) == 0) panel->g_task.font[TASK_ICONIFIED] = panel->g_task.font[TASK_NORMAL];
        if ((panel->g_task.config_font_mask & (1<<TASK_URGENT)) == 0) panel->g_task.font[TASK_URGENT] = panel->g_task.font[TASK_ACTIVE];
-       if ((panel->g_task.config_font_mask & (1<<TASK_NORMAL)) == 0) panel->g_task.background[TASK_NORMAL] = &g_array_index(backgrounds, Background, 0);
+       if ((panel->g_task.config_background_mask & (1<<TASK_NORMAL)) == 0) panel->g_task.background[TASK_NORMAL] = &g_array_index(backgrounds, Background, 0);
        if ((panel->g_task.config_background_mask & (1<<TASK_ACTIVE)) == 0) panel->g_task.background[TASK_ACTIVE] = panel->g_task.background[TASK_NORMAL];
        if ((panel->g_task.config_background_mask & (1<<TASK_ICONIFIED)) == 0) panel->g_task.background[TASK_ICONIFIED] = panel->g_task.background[TASK_NORMAL];
        if ((panel->g_task.config_background_mask & (1<<TASK_URGENT)) == 0) panel->g_task.background[TASK_URGENT] = panel->g_task.background[TASK_ACTIVE];
@@ -193,6 +193,8 @@ void init_taskbar_panel(void *p)
        }
 
        for (j=0; j<TASK_STATE_COUNT; ++j) {
+               if (panel->g_task.background[j] == 0)
+                       panel->g_task.background[j] = &g_array_index(backgrounds, Background, 0);
                if (panel->g_task.background[j]->border.rounded > panel->g_task.area.height/2) {
                        printf("task%sbackground_id has a too large rounded value. Please fix your tint2rc\n", j==0 ? "_" : j==1 ? "_active_" : j==2 ? "_iconified_" : "_urgent_");
                        g_array_append_val(backgrounds, *panel->g_task.background[j]);
@@ -342,6 +344,10 @@ void set_taskbar_state(Taskbar *tskbar, int state)
 {
        tskbar->area.bg = panel1[0].g_taskbar.background[state];
        tskbar->area.pix = tskbar->state_pix[state];
+       if (taskbarname_enabled) {
+               tskbar->bar_name.area.bg = panel1[0].g_taskbar.background_name[state];
+               tskbar->bar_name.area.pix = tskbar->bar_name.state_pix[state];
+       }
        if (panel_mode != MULTI_DESKTOP) { 
                if (state == TASKBAR_NORMAL)
                        tskbar->area.on_screen = 0;
@@ -351,6 +357,8 @@ void set_taskbar_state(Taskbar *tskbar, int state)
        if (tskbar->area.on_screen == 1) {
                if (tskbar->state_pix[state] == 0)
                        tskbar->area.redraw = 1;
+               if (taskbarname_enabled && tskbar->bar_name.state_pix[state] == 0)
+                       tskbar->bar_name.area.redraw = 1;
                if (panel_mode == MULTI_DESKTOP && panel1[0].g_taskbar.background[TASKBAR_NORMAL] != panel1[0].g_taskbar.background[TASKBAR_ACTIVE]) {
                        GSList *l = tskbar->area.list;
                        if (taskbarname_enabled) l = l->next;
This page took 0.023637 seconds and 4 git commands to generate.