X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Ftint.c;h=529e3cda0119a3d18bdaa829084bd10aeebcfeed;hb=fc22af941cf7b9db65a703e9e697490119c70ec2;hp=2ba8727d05297a8b5188db4e1dcb812773f27e2a;hpb=928fc258ac46f2cc098f714921c028351b07ec31;p=chaz%2Ftint2 diff --git a/src/tint.c b/src/tint.c index 2ba8727..529e3cd 100644 --- a/src/tint.c +++ b/src/tint.c @@ -156,7 +156,6 @@ void init_X11() void cleanup() { - cleanup_timeout(); cleanup_systray(); cleanup_tooltip(); cleanup_clock(); @@ -174,6 +173,7 @@ void cleanup() imlib_context_disconnect_display(); cleanup_server(); + cleanup_timeout(); if (server.dsp) XCloseDisplay(server.dsp); } @@ -485,27 +485,35 @@ void event_property_notify (XEvent *e) server.got_root_win = 1; } + // Change name of desktops + else if (at == server.atom._NET_DESKTOP_NAMES) { + printf("_NET_DESKTOP_NAMES\n"); + panel_refresh = 1; + } // Change number of desktops else if (at == server.atom._NET_NUMBER_OF_DESKTOPS) { + if (!taskbar_enabled) return; server.nb_desktop = server_get_number_of_desktop (); cleanup_taskbar(); init_taskbar(); for (i=0 ; i < nb_panel ; i++) { - set_panel_items(&panel1[i]); + init_taskbar_panel(&panel1[i]); + set_panel_items_order(&panel1[i]); + visible_taskbar(&panel1[i]); panel1[i].area.resize = 1; } - visible_object(); task_refresh_tasklist(); active_task(); panel_refresh = 1; } // Change desktop else if (at == server.atom._NET_CURRENT_DESKTOP) { + if (!taskbar_enabled) return; int old_desktop = server.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) { + if (panel_mode == MULTI_DESKTOP && panel->g_taskbar.bg != panel->g_taskbar.bg_active) { // redraw both taskbar if (server.nb_desktop > old_desktop) { // can happen if last desktop is deleted and we've been on the last desktop @@ -539,9 +547,8 @@ void event_property_notify (XEvent *e) tskbar->area.resize = 1; } } - } - if (panel_mode != MULTI_DESKTOP) { - visible_object(); + if (panel_mode != MULTI_DESKTOP) + visible_taskbar(panel); } } // Window list