From b42e067629874abf07ff3fe0ccafd13b0cf9cf0b Mon Sep 17 00:00:00 2001 From: thilor77 Date: Wed, 16 Dec 2009 09:04:50 +0000 Subject: [PATCH] fixed issue 176 git-svn-id: http://tint2.googlecode.com/svn/trunk@285 121b4492-b84c-0410-8b4c-0d4edfb3f3cc --- src/panel.c | 14 +++++++++----- src/server.c | 3 +-- src/tint.c | 3 +-- src/tooltip/tooltip.c | 7 +++++-- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/panel.c b/src/panel.c index 52ae61b..50aa5c3 100644 --- a/src/panel.c +++ b/src/panel.c @@ -58,7 +58,7 @@ int max_tick_urgent; // panel's initial config Panel panel_config; // panels (one panel per monitor) -Panel *panel1 = NULL; +Panel *panel1 = 0; int nb_panel = 0; Imlib_Image default_icon = NULL; @@ -113,11 +113,12 @@ void init_panel() new_panel[i].main_win = old_win; } - fprintf(stderr, "tint2 : nb monitor %d, nb desktop %d\n", nb_panel, server.nb_desktop); + fprintf(stderr, "tint2 : nb monitor %d, nb monitor used %d, nb desktop %d\n", server.nb_monitor, nb_panel, server.nb_desktop); for (i=0 ; i < nb_panel ; i++) { p = &new_panel[i]; - p->monitor = i; + if (panel_config.monitor < 0) + p->monitor = i; p->area.parent = p; p->area.panel = p; p->area.on_screen = 1; @@ -263,8 +264,11 @@ void cleanup_panel() } } - if (panel1) free(panel1); - panel1 = 0; + if (panel1) { + free(panel1); + panel1 = 0; + nb_panel = 0; + } if (panel_config.g_task.font_desc) { pango_font_description_free(panel_config.g_task.font_desc); diff --git a/src/server.c b/src/server.c index 56a1244..511eca5 100644 --- a/src/server.c +++ b/src/server.c @@ -266,8 +266,7 @@ void get_monitors() } next: server.nb_monitor = i; - server.monitor = realloc(server.monitor, server.nb_monitor * sizeof(Monitor)); - //printf(" nbmonitor %d\n", server.nb_monitor); + server.monitor = realloc(server.monitor, server.nb_monitor * sizeof(Monitor)); qsort(server.monitor, server.nb_monitor, sizeof(Monitor), compareMonitorPos); } } diff --git a/src/tint.c b/src/tint.c index ca8f4ff..fd30d39 100644 --- a/src/tint.c +++ b/src/tint.c @@ -739,9 +739,8 @@ int main (int argc, char *argv[]) if (!g_tooltip.enabled) break; Panel* panel = get_panel(e.xmotion.window); Area* area = click_area(panel, e.xmotion.x, e.xmotion.y); - if (area->_get_tooltip_text) { + if (area->_get_tooltip_text) tooltip_trigger_show(area, panel, e.xmotion.x_root, e.xmotion.y_root); - } else tooltip_trigger_hide(); break; diff --git a/src/tooltip/tooltip.c b/src/tooltip/tooltip.c index 06a67d3..6d27ec0 100644 --- a/src/tooltip/tooltip.c +++ b/src/tooltip/tooltip.c @@ -102,6 +102,7 @@ void tooltip_trigger_show(Area* area, Panel* p, int x_root, int y_root) } else if (!g_tooltip.mapped) { start_show_timeout(); + //printf("!g_tooltip.mapped %d %d\n", x, y); } } @@ -272,10 +273,12 @@ void start_show_timeout() { reset_timer(g_tooltip.hide_timer_id, 0, 0, 0, 0); struct timespec t = g_tooltip.show_timeout; - if (t.tv_sec == 0 && t.tv_nsec == 0) + if (t.tv_sec == 0 && t.tv_nsec == 0) { tooltip_show(); - else + } + else { reset_timer(g_tooltip.show_timer_id, t.tv_sec, t.tv_nsec, 0, 0); + } }