From 77c33a531f505a41491d415de36af6fb9ee7b178 Mon Sep 17 00:00:00 2001 From: Thierry Lorthiois Date: Mon, 16 Aug 2010 19:38:58 +0000 Subject: [PATCH] Center the tooltip correctly when the text changes while the tooltip is visible --- src/tooltip/tooltip.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/tooltip/tooltip.c b/src/tooltip/tooltip.c index a57883d..d703a2e 100644 --- a/src/tooltip/tooltip.c +++ b/src/tooltip/tooltip.c @@ -27,7 +27,7 @@ #include "panel.h" #include "timer.h" -static int x, y, width, height; +static int x_original, y_original, x, y, width, height; // the next functions are helper functions for tooltip handling void start_show_timeout(); @@ -78,8 +78,8 @@ void init_tooltip() void tooltip_trigger_show(Area* area, Panel* p, XEvent *e) { // Position the tooltip in the center of the area - x = area->posx + area->width / 2 + e->xmotion.x_root - e->xmotion.x; - y = area->posy + area->height / 2 + e->xmotion.y_root - e->xmotion.y; + x = x_original = area->posx + area->width / 2 + e->xmotion.x_root - e->xmotion.x; + y = y_original = area->posy + area->height / 2 + e->xmotion.y_root - e->xmotion.y; g_tooltip.panel = p; if (g_tooltip.mapped && g_tooltip.area != area) { tooltip_copy_text(area); @@ -124,6 +124,9 @@ void tooltip_update_geometry() width = 2*g_tooltip.bg->border.width + 2*g_tooltip.paddingx + r2.width; height = 2*g_tooltip.bg->border.width + 2*g_tooltip.paddingy + r2.height; + x = x_original; + y = y_original; + Panel* panel = g_tooltip.panel; if (panel_horizontal && panel_position & BOTTOM) y = panel->posy-height; -- 2.45.2