many fixed for SIGUSR1 signal

git-svn-id: http://tint2.googlecode.com/svn/trunk@244 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
This commit is contained in:
lorthiois@bbsoft.fr
2009-10-30 20:54:29 +00:00
parent 271ec40e04
commit 12e73beb50
6 changed files with 11 additions and 30 deletions

View File

@@ -56,10 +56,8 @@ char *thumbnail_path = 0;
// -------------------------------------------------- // --------------------------------------------------
// backward compatibility // backward compatibility
static int old_task_icon_size; static int old_task_icon_size;
static char *old_task_font; static Area *area_task;
static char *old_time1_font; static Area *area_task_active;
static char *old_time2_font;
static Area *area_task, *area_task_active;
// temporary list of background // temporary list of background
@@ -79,6 +77,9 @@ void init_config()
cleanup_tooltip(); cleanup_tooltip();
// panel's default value // 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)); memset(&panel_config, 0, sizeof(Panel));
panel_config.g_task.alpha = 100; panel_config.g_task.alpha = 100;
panel_config.g_task.alpha_active = 100; panel_config.g_task.alpha_active = 100;
@@ -645,7 +646,6 @@ int config_read ()
g_free(path1); g_free(path1);
// copy tint2rc from system directory to user directory // copy tint2rc from system directory to user directory
g_free(path1);
char *path2 = 0; char *path2 = 0;
system_dirs = g_get_system_config_dirs(); system_dirs = g_get_system_config_dirs();
for (i = 0; system_dirs[i]; i++) { for (i = 0; system_dirs[i]; i++) {
@@ -682,9 +682,6 @@ int config_read_file (const char *path)
char *key, *value; char *key, *value;
if ((fp = fopen(path, "r")) == NULL) return 0; 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) { while (fgets(line, sizeof(line), fp) != NULL) {
if (parse_line(line, &key, &value)) { if (parse_line(line, &key, &value)) {
@@ -698,18 +695,6 @@ int config_read_file (const char *path)
if (old_task_icon_size) { 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; 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; return 1;
} }

View File

@@ -153,7 +153,6 @@ void init_panel()
if (g_tooltip.enabled) if (g_tooltip.enabled)
event_mask |= PointerMotionMask|LeaveWindowMask; event_mask |= PointerMotionMask|LeaveWindowMask;
XSetWindowAttributes att = { ParentRelative, 0L, 0, 0L, 0, 0, Always, 0L, 0L, False, event_mask, NoEventMask, False, 0, 0 }; 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); 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 { else {
@@ -243,12 +242,6 @@ void cleanup_panel()
task_urgent = 0; task_urgent = 0;
cleanup_taskbar(); 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; int i;
Panel *p; Panel *p;
for (i=0 ; i < nb_panel ; i++) { for (i=0 ; i < nb_panel ; i++) {

View File

@@ -379,7 +379,6 @@ void remove_icon(TrayWindow *traywin)
// remove from our list // remove from our list
systray.list_icons = g_slist_remove(systray.list_icons, traywin); systray.list_icons = g_slist_remove(systray.list_icons, traywin);
g_free(traywin);
systray.area.resize = 1; systray.area.resize = 1;
systray.area.redraw = 1; systray.area.redraw = 1;
//printf("remove_icon id %lx, %d\n", traywin->id); //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); XReparentWindow(server.dsp, traywin->id, server.root_win, 0, 0);
XSync(server.dsp, False); XSync(server.dsp, False);
XSetErrorHandler(old); XSetErrorHandler(old);
g_free(traywin);
// changed in systray force resize on panel // changed in systray force resize on panel
Panel *panel = systray.area.panel; Panel *panel = systray.area.panel;

View File

@@ -121,8 +121,6 @@ void cleanup_taskbar()
GSList *l0; GSList *l0;
Task *tsk; 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++) { for (i=0 ; i < nb_panel ; i++) {
panel = &panel1[i]; panel = &panel1[i];

View File

@@ -587,7 +587,10 @@ void event_configure_notify (Window win)
// change in root window (xrandr) // change in root window (xrandr)
if (win == server.root_win) { if (win == server.root_win) {
get_monitors(); get_monitors();
init_config();
config_read_file (config_path);
init_panel(); init_panel();
cleanup_config();
return; return;
} }
@@ -750,6 +753,7 @@ int main (int argc, char *argv[])
break; break;
case MotionNotify: { case MotionNotify: {
if (!g_tooltip.enabled) break;
Panel* panel = get_panel(e.xmotion.window); Panel* panel = get_panel(e.xmotion.window);
Task* task = click_task(panel, e.xmotion.x, e.xmotion.y); Task* task = click_task(panel, e.xmotion.x, e.xmotion.y);
if (task) if (task)

View File

@@ -63,6 +63,7 @@ void cleanup_tooltip()
{ {
tooltip_hide(); tooltip_hide();
g_tooltip.enabled = False; g_tooltip.enabled = False;
g_tooltip.current_state = TOOLTIP_ABOUT_TO_HIDE;
if (g_tooltip.task) { if (g_tooltip.task) {
alarm(0); alarm(0);
g_tooltip.task = 0; g_tooltip.task = 0;