]> Dogcows Code - chaz/tint2/blobdiff - src/tooltip/tooltip.c
*fix* calculate right struts for multiple monitors. fixes issue 148 and issue 178
[chaz/tint2] / src / tooltip / tooltip.c
index 06a67d3b441effa86732f7fb43ca5626e6ea2a8f..8e74972ab783026220f87a4532b4506b158339af 100644 (file)
@@ -60,10 +60,8 @@ void init_tooltip()
        if (!g_tooltip.font_desc)
                g_tooltip.font_desc = pango_font_description_from_string("sans 10");
 
-       if (g_tooltip.show_timer_id == 0)
-               g_tooltip.show_timer_id = install_timer(0, 0, 0, 0, tooltip_show);
-       if (g_tooltip.hide_timer_id == 0)
-               g_tooltip.hide_timer_id = install_timer(0, 0, 0, 0, tooltip_hide);
+       g_tooltip.show_timer_id = install_timer(0, 0, 0, 0, tooltip_show);
+       g_tooltip.hide_timer_id = install_timer(0, 0, 0, 0, tooltip_hide);
 
        XSetWindowAttributes attr;
        attr.override_redirect = True;
@@ -108,7 +106,10 @@ void tooltip_trigger_show(Area* area, Panel* p, int x_root, int y_root)
 
 void tooltip_show()
 {
-       Area* area = click_area(g_tooltip.panel, x, y);
+  int mx, my;
+  Window w;
+  XTranslateCoordinates( server.dsp, server.root_win, g_tooltip.panel->main_win, x, y, &mx, &my, &w);
+  Area* area = click_area(g_tooltip.panel, mx, my);
        stop_timeouts();
        if (!g_tooltip.mapped && area->_get_tooltip_text) {
                tooltip_copy_text(area);
@@ -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);
+       }
 }
 
 
This page took 0.025229 seconds and 4 git commands to generate.