fixed issue 45, segfault without clock
git-svn-id: http://tint2.googlecode.com/svn/trunk@55 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
15
src/panel.c
15
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];
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user