]> Dogcows Code - chaz/tint2/blobdiff - src/tint.c
added taskbar_active_background_id to change current desktop background
[chaz/tint2] / src / tint.c
index 4eb8cc7cbec7380443fabd338bfd13203db8204a..a75b1b4d4117ec860665e17ac3b03e0cbb3e9973 100644 (file)
@@ -388,6 +388,35 @@ void event_property_notify (XEvent *e)
       // Change desktop
       else if (at == server.atom._NET_CURRENT_DESKTOP) {
          server.desktop = server_get_current_desktop ();
+                       for (i=0 ; i < nb_panel ; i++) {
+                          Panel *panel = &panel1[i];
+                               if (panel_mode == MULTI_DESKTOP && panel->g_taskbar.use_active) {
+                                       // redraw taskbar
+                                       panel_refresh = 1;
+                                       Taskbar *tskbar;
+                                       Task *tsk;
+                                       GSList *l;
+                                       for (j=0 ; j < panel->nb_desktop ; j++) {
+                                               tskbar = &panel->taskbar[j];
+                                               if (tskbar->area.is_active) {
+                                                       tskbar->area.is_active = 0;
+                                                       tskbar->area.redraw = 1;
+                                                       for (l = tskbar->area.list; l ; l = l->next) {
+                                                               tsk = l->data;
+                                                               tsk->area.redraw = 1;
+                                                       }
+                                               }
+                                               if (j == server.desktop) {
+                                                       tskbar->area.is_active = 1;
+                                                       tskbar->area.redraw = 1;
+                                                       for (l = tskbar->area.list; l ; l = l->next) {
+                                                               tsk = l->data;
+                                                               tsk->area.redraw = 1;
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
          if (panel_mode != MULTI_DESKTOP) {
                                visible_object();
          }
This page took 0.022237 seconds and 4 git commands to generate.