]> Dogcows Code - chaz/tint2/blobdiff - src/tint.c
panel_items : fixed segfault (panel without clock, change number desktop)
[chaz/tint2] / src / tint.c
index 6d65ea3f4628d3cd85743dcdfad8bbb2d41197bb..2ba8727d05297a8b5188db4e1dcb812773f27e2a 100644 (file)
@@ -158,13 +158,13 @@ void cleanup()
 {
        cleanup_timeout();
        cleanup_systray();
-       cleanup_panel();
        cleanup_tooltip();
        cleanup_clock();
        cleanup_launcher();
 #ifdef ENABLE_BATTERY
        cleanup_battery();
 #endif
+       cleanup_panel();
        cleanup_config();
 
        if (default_icon) {
@@ -186,7 +186,7 @@ void get_snapshot(const char *path)
                panel->area.width = server.monitor[0].width;
 
        panel->temp_pmap = XCreatePixmap(server.dsp, server.root_win, panel->area.width, panel->area.height, server.depth);
-       refresh(&panel->area);
+       rendering(panel);
 
        Imlib_Image img = NULL;
        imlib_context_set_drawable(panel->temp_pmap);
@@ -490,10 +490,11 @@ void event_property_notify (XEvent *e)
                        server.nb_desktop = server_get_number_of_desktop ();
                        cleanup_taskbar();
                        init_taskbar();
-                       visible_object();
                        for (i=0 ; i < nb_panel ; i++) {
+                               set_panel_items(&panel1[i]);
                                panel1[i].area.resize = 1;
                        }
+                       visible_object();
                        task_refresh_tasklist();
                        active_task();
                        panel_refresh = 1;
@@ -775,7 +776,7 @@ start:
                                else {
                                        if (panel->temp_pmap) XFreePixmap(server.dsp, panel->temp_pmap);
                                        panel->temp_pmap = XCreatePixmap(server.dsp, server.root_win, panel->area.width, panel->area.height, server.depth);
-                                       refresh(&panel->area);
+                                       rendering(panel);
                                        XCopyArea(server.dsp, panel->temp_pmap, panel->main_win, server.gc, 0, 0, panel->area.width, panel->area.height, 0, 0);
                                }
                        }
@@ -883,7 +884,7 @@ start:
                                                        signal_pending = SIGUSR1;
                                                        break;
                                                }
-                                               if (e.xany.window == g_tooltip.window || !systray.area.on_screen)
+                                               if (e.xany.window == g_tooltip.window || !systray_enabled)
                                                        break;
                                                for (it = systray.list_icons; it; it = g_slist_next(it)) {
                                                        if (((TrayWindow*)it->data)->tray_id == e.xany.window) {
@@ -903,7 +904,7 @@ start:
                                                                // Start real_transparency
                                                                signal_pending = SIGUSR1;
                                                }
-                                               if (systray.area.on_screen && e.xclient.message_type == server.atom._NET_SYSTEM_TRAY_OPCODE && e.xclient.format == 32 && e.xclient.window == net_sel_win) {
+                                               if (systray_enabled && e.xclient.message_type == server.atom._NET_SYSTEM_TRAY_OPCODE && e.xclient.format == 32 && e.xclient.window == net_sel_win) {
                                                        net_message(&e.xclient);
                                                }
                                                else if (e.xclient.message_type == server.atom.XdndPosition) {
This page took 0.023054 seconds and 4 git commands to generate.