]> Dogcows Code - chaz/tint2/commitdiff
many fixed for SIGUSR1 signal
authorThierry Lorthiois <lorthiois@bbsoft.fr>
Fri, 30 Oct 2009 20:54:29 +0000 (20:54 +0000)
committerThierry Lorthiois <lorthiois@bbsoft.fr>
Fri, 30 Oct 2009 20:54:29 +0000 (20:54 +0000)
src/config.c
src/panel.c
src/systray/systraybar.c
src/taskbar/taskbar.c
src/tint.c
src/tooltip/tooltip.c

index 0e7eae43f47a6374a4f356bf8bd8731cfe65b6b2..efbcd5c082e363fd554a0a3af17af99698745e7c 100644 (file)
@@ -56,10 +56,8 @@ char *thumbnail_path = 0;
 // --------------------------------------------------
 // backward compatibility
 static int old_task_icon_size;
-static char *old_task_font;
-static char *old_time1_font;
-static char *old_time2_font;
-static Area *area_task, *area_task_active;
+static Area *area_task;
+static Area *area_task_active;
 
 
 // temporary list of background
@@ -79,6 +77,9 @@ void init_config()
        cleanup_tooltip();
 
        // panel's default value
+       if (panel_config.g_task.font_desc) {
+               pango_font_description_free(panel_config.g_task.font_desc);
+       }
        memset(&panel_config, 0, sizeof(Panel));
        panel_config.g_task.alpha = 100;
        panel_config.g_task.alpha_active = 100;
@@ -645,7 +646,6 @@ int config_read ()
        g_free(path1);
 
        // copy tint2rc from system directory to user directory
-       g_free(path1);
        char *path2 = 0;
        system_dirs = g_get_system_config_dirs();
        for (i = 0; system_dirs[i]; i++) {
@@ -682,9 +682,6 @@ int config_read_file (const char *path)
        char *key, *value;
 
        if ((fp = fopen(path, "r")) == NULL) return 0;
-       old_task_font = 0;
-       old_time1_font = 0;
-       old_time2_font = 0;
 
        while (fgets(line, sizeof(line), fp) != NULL) {
                if (parse_line(line, &key, &value)) {
@@ -698,18 +695,6 @@ int config_read_file (const char *path)
        if (old_task_icon_size) {
                panel_config.g_task.area.paddingy = ((int)panel_config.area.height - (2 * panel_config.area.paddingy) - old_task_icon_size) / 2;
        }
-       if (old_task_font) {
-               g_free(old_task_font);
-               old_task_font = 0;
-       }
-       if (old_time1_font) {
-               g_free(old_time1_font);
-               old_time1_font = 0;
-       }
-       if (old_time2_font) {
-               g_free(old_time2_font);
-               old_time2_font = 0;
-       }
        return 1;
 }
 
index 0a09968ba96311441c74b9255b32cba5fd7d5059..3151be234ed688d363fb51b43d9a88c0f5b7fc11 100644 (file)
@@ -153,7 +153,6 @@ void init_panel()
                        if (g_tooltip.enabled)
                                event_mask |= PointerMotionMask|LeaveWindowMask;
                        XSetWindowAttributes att = { ParentRelative, 0L, 0, 0L, 0, 0, Always, 0L, 0L, False, event_mask, NoEventMask, False, 0, 0 };
-                       if (p->main_win) XDestroyWindow(server.dsp, p->main_win);
                        p->main_win = XCreateWindow(server.dsp, server.root_win, p->posx, p->posy, p->area.width, p->area.height, 0, server.depth, InputOutput, CopyFromParent, CWEventMask, &att);
                }
                else {
@@ -243,12 +242,6 @@ void cleanup_panel()
        task_urgent = 0;
        cleanup_taskbar();
 
-       // font allocated once
-       if (panel1[0].g_task.font_desc) {
-               pango_font_description_free(panel1[0].g_task.font_desc);
-               panel1[0].g_task.font_desc = 0;
-       }
-
        int i;
        Panel *p;
        for (i=0 ; i < nb_panel ; i++) {
index 661b2c6a5ed035bca9d0a3153193113880deff19..85431967d8128266aa48c9757859863bf1ee8d34 100644 (file)
@@ -379,7 +379,6 @@ void remove_icon(TrayWindow *traywin)
 
        // remove from our list
        systray.list_icons = g_slist_remove(systray.list_icons, traywin);
-       g_free(traywin);
        systray.area.resize = 1;
        systray.area.redraw = 1;
        //printf("remove_icon id %lx, %d\n", traywin->id);
@@ -394,6 +393,7 @@ void remove_icon(TrayWindow *traywin)
        XReparentWindow(server.dsp, traywin->id, server.root_win, 0, 0);
        XSync(server.dsp, False);
        XSetErrorHandler(old);
+       g_free(traywin);
 
        // changed in systray force resize on panel
        Panel *panel = systray.area.panel;
index eae04dfbd94e82e0c175bf91ce9f115c6a6d4fec..1c029881fc4f6f730bfeb8bf585622c2d6cf4cba 100644 (file)
@@ -121,8 +121,6 @@ void cleanup_taskbar()
        GSList *l0;
        Task *tsk;
 
-       if (panel_config.g_task.font_desc)
-               pango_font_description_free(panel_config.g_task.font_desc);
        for (i=0 ; i < nb_panel ; i++) {
                panel = &panel1[i];
 
index 903a4cfc8dc701fa1c31f58fec0b62d9ff5234bb..f8a4a52f0d7e1c6a400c1265f89297b7213ba3e5 100644 (file)
@@ -587,7 +587,10 @@ void event_configure_notify (Window win)
        // change in root window (xrandr)
        if (win == server.root_win) {
                get_monitors();
+               init_config();
+               config_read_file (config_path);
                init_panel();
+               cleanup_config();
                return;
        }
 
@@ -750,6 +753,7 @@ int main (int argc, char *argv[])
                                                break;
 
                                        case MotionNotify: {
+                                               if (!g_tooltip.enabled) break;
                                                Panel* panel = get_panel(e.xmotion.window);
                                                Task* task = click_task(panel, e.xmotion.x, e.xmotion.y);
                                                if (task)
index 157b65cd13376fe8462810798468a5f3a219e025..ca6a5a29a4cb0ef3f2452ec12394eb386b93b1e7 100644 (file)
@@ -63,6 +63,7 @@ void cleanup_tooltip()
 {
        tooltip_hide();
        g_tooltip.enabled = False;
+       g_tooltip.current_state = TOOLTIP_ABOUT_TO_HIDE;
        if (g_tooltip.task) {
                alarm(0);
                g_tooltip.task = 0;
This page took 0.030969 seconds and 4 git commands to generate.