discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=cca19389cc803ceb382adcd3d32ff3cf55011fb7

commit cca19389cc803ceb382adcd3d32ff3cf55011fb7
Author: zmike <michael.blumenkra...@gmail.com>
Date:   Tue Apr 22 09:29:49 2014 -0400

    tooltips position more accurately in X in xinerama
    
    elm_win_screen_size_get() is broken for this use case since the tooltip 
actually needs the full xinerama screen geometry, which is the geometry of the 
root window and NOT the current screen
    
    @fix
---
 src/lib/els_tooltip.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/lib/els_tooltip.c b/src/lib/els_tooltip.c
index bfbb40c..bc24676 100644
--- a/src/lib/els_tooltip.c
+++ b/src/lib/els_tooltip.c
@@ -393,7 +393,16 @@ _elm_tooltip_reconfigure(Elm_Tooltip *tt)
    TTDBG("TTSIZE:  tw=%d,th=%d,ominw=%d,ominh=%d\n", tw, th, ominw, ominh);
 
    if (tt->tt_win)
-     elm_win_screen_size_get(elm_widget_top_get(tt->owner), NULL, NULL, &cw, 
&ch);
+     {
+#ifdef HAVE_ELEMENTARY_X
+        Evas_Object *win = elm_widget_top_get(tt->owner);
+        Ecore_X_Window xwin = elm_win_xwindow_get(win);
+        if (xwin)
+          ecore_x_window_size_get(ecore_x_window_root_get(xwin), &cw, &ch);
+#endif
+        if (!cw)
+          elm_win_screen_size_get(elm_widget_top_get(tt->owner), NULL, NULL, 
&cw, &ch);
+     }
    if (!cw)
      evas_output_size_get(tt->tt_evas ?: tt->evas, &cw, &ch);
    TTDBG("SCREEN:  cw=%d,ch=%d\n", cw, ch);

-- 


Reply via email to