From: Thierry Lorthiois Date: Sat, 14 Feb 2009 20:11:37 +0000 (+0000) Subject: fixed issue 45, segfault without clock X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Ftint2;a=commitdiff_plain;h=5f3517c10b72d28cb72f634ea17306a4cd0b2ab6 fixed issue 45, segfault without clock --- diff --git a/src/Makefile b/src/Makefile index c31fc32..2dcd58b 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,6 +1,6 @@ CFLAGS= -O2 CC = gcc -FLAGS=-W -g `pkg-config --cflags --libs cairo pangocairo x11 xinerama imlib2 glib-2.0` +FLAGS=-Wall -g `pkg-config --cflags --libs cairo pangocairo x11 xinerama imlib2 glib-2.0` PROGNAME=tint2 FILES=tint.c server.c panel.c config.c taskbar/task.c taskbar/taskbar.c clock/clock.c systray/systraybar.c util/window.c util/area.c @@ -23,7 +23,7 @@ endif $(PROGNAME): $(FILES) $(SYSTRAYOBJ) $(CC) $(CFLAGS) -I. -Iutil -Iclock -Itaskbar -Isystray -o $(PROGNAME) $(FILES) $(FLAGS) - strip $(PROGNAME) + #strip $(PROGNAME) install: mkdir -p $(BINDIR) diff --git a/src/clock/clock.c b/src/clock/clock.c index 35fb595..720d498 100644 --- a/src/clock/clock.c +++ b/src/clock/clock.c @@ -48,12 +48,10 @@ void init_clock(Clock *clock, Area *parent) clock->area.parent = parent; clock->area.panel = panel; - clock->area._draw_foreground = draw_foreground_clock; - clock->area._resize = resize_clock; if (!time1_format) return; - // add clock to the panel - panel->area.list = g_slist_append(panel->area.list, clock); + clock->area._draw_foreground = draw_foreground_clock; + clock->area._resize = resize_clock; if (strchr(time1_format, 'S') == NULL) time_precision = 60; else time_precision = 1; diff --git a/src/config.c b/src/config.c index f93faf5..5ef3464 100644 --- a/src/config.c +++ b/src/config.c @@ -573,7 +573,8 @@ void config_finish () // force the resize for (i=0 ; i < nb_panel ; i++) { panel1[i].area.resize = 1; - resize_clock(&panel1[i].clock); + if (time1_format) + resize_clock(&panel1[i].clock); } init_taskbar(); diff --git a/src/panel.c b/src/panel.c index b12f58a..35cdd8a 100644 --- a/src/panel.c +++ b/src/panel.c @@ -66,6 +66,12 @@ void init_panel() p->g_taskbar.panel = p; p->g_task.area.panel = p; + // add childs + if (time1_format) + p->area.list = g_slist_append(p->area.list, &p->clock); + //panel->area.list = g_slist_append(panel->area.list, &panel->trayer); + + // detect panel size if (p->pourcentx) p->area.width = (float)server.monitor[p->monitor].width * p->initial_width / 100; else @@ -75,7 +81,6 @@ void init_panel() else p->area.height = p->initial_height; - // full width mode if (!p->area.width) p->area.width = server.monitor[p->monitor].width; @@ -139,12 +144,6 @@ void cleanup_panel() for (i=0 ; i < nb_panel ; i++) { p = &panel1[i]; - // freed list of visible objects - if (p->list_visible) { - g_slist_free(p->list_visible); - p->list_visible = 0; - } - free_area(&p->area); free_area(&p->g_task.area); free_area(&p->g_taskbar); @@ -220,8 +219,6 @@ void visible_object() else panel->clock.area.visible = 0; - //panel->area.list = g_slist_append(panel->area.list, &panel->trayer); - Taskbar *taskbar; for (j=0 ; j < panel->nb_desktop ; j++) { taskbar = &panel->taskbar[j]; diff --git a/src/panel.h b/src/panel.h index 64ffcdb..8bc64b7 100644 --- a/src/panel.h +++ b/src/panel.h @@ -49,9 +49,6 @@ typedef struct { // area.list own all objects of the panel according to config file Area area; - // list of visible objects - GSList *list_visible; - // -------------------------------------------------- // panel Window main_win; diff --git a/src/tint2 b/src/tint2 index 42b9397..df19901 100755 Binary files a/src/tint2 and b/src/tint2 differ diff --git a/tintrc01 b/tintrc01 index ccec170..5f58688 100644 --- a/tintrc01 +++ b/tintrc01 @@ -25,7 +25,7 @@ border_color = #ffffff 70 #--------------------------------------------- panel_monitor = all panel_position = bottom center -panel_size = 90% 28 +panel_size = 88% 28 panel_margin = 0 0 panel_padding = 7 0 font_shadow = 0 diff --git a/tintrc03 b/tintrc03 index 357c00a..5763ef0 100644 --- a/tintrc03 +++ b/tintrc03 @@ -25,14 +25,14 @@ panel_size = 100% 30 panel_margin = 0 0 panel_padding = 6 0 6 font_shadow = 0 -panel_background_id = 1 +panel_background_id = 0 #--------------------------------------------- # TASKBAR #--------------------------------------------- taskbar_mode = multi_desktop taskbar_padding = 8 0 0 -taskbar_background_id = 0 +taskbar_background_id = 1 #--------------------------------------------- # TASKS @@ -51,13 +51,13 @@ task_active_background_id = 2 #--------------------------------------------- # CLOCK #--------------------------------------------- -time1_format = %A %d %H:%M +#time1_format = %A %d %H:%M time1_font = Dejavu sans 10 #time2_format = %A %d %B time2_font = sans 7 clock_font_color = #000000 80 clock_padding = 8 0 -clock_background_id = 0 +clock_background_id = 1 #--------------------------------------------- # MOUSE ACTION ON TASK