]> Dogcows Code - chaz/tint2/commitdiff
revert rev 541 : we don t need to duplicate x,y
authorThierry Lorthiois <lorthiois@bbsoft.fr>
Thu, 19 Aug 2010 20:33:42 +0000 (20:33 +0000)
committerThierry Lorthiois <lorthiois@bbsoft.fr>
Thu, 19 Aug 2010 20:33:42 +0000 (20:33 +0000)
src/tooltip/tooltip.c
src/util/area.c

index d703a2ed17706071cacf6fe55049f2097d5982ff..dd7166eb0cc4b6b7098d4187bc459bea15c33e5c 100644 (file)
@@ -27,7 +27,7 @@
 #include "panel.h"
 #include "timer.h"
 
-static int x_original, y_original, x, y, width, height;
+static int x, y, width, height;
 
 // the next functions are helper functions for tooltip handling
 void start_show_timeout();
@@ -78,8 +78,10 @@ void init_tooltip()
 void tooltip_trigger_show(Area* area, Panel* p, XEvent *e)
 {
        // Position the tooltip in the center of the area
-       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;
+       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;
+       if (!panel_horizontal)
+               y -= height/2;
        g_tooltip.panel = p;
        if (g_tooltip.mapped && g_tooltip.area != area) {
                tooltip_copy_text(area);
@@ -124,9 +126,6 @@ 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;
@@ -137,9 +136,6 @@ void tooltip_update_geometry()
        else
                x = panel->posx - width;
 
-       if (!panel_horizontal)
-               y -= height/2;
-
        g_object_unref(layout);
        cairo_destroy(c);
        cairo_surface_destroy(cs);
index df2de5a71d66f0381b3a8973b61fbafc0638a555..0460d57c72ca571803846983b885fa88c31dfae9 100644 (file)
  * or from a layering event (size or position change).
  * 
  * DRAWING LOOP :
- * 
  * 1) browse tree and resize SIZE_BY_CONTENT node
  *     - children node are resized before its parent
- *     - if 'size' changed then 'resize = 1' on the parent
+ *     - if 'size' changed then 'redraw = 1' and 'resize = 1' on the parent
  * 2) browse tree and resize SIZE_BY_LAYOUT node
  *     - parent node is resized before its children
- *     - if 'size' changed then 'resize = 1' on childs with SIZE_BY_LAYOUT
+ *     - if 'size' changed then 'redraw = 1' and 'resize = 1' on childs with SIZE_BY_LAYOUT
  * 3) calculate posx of objects
  *     - parent's position is calculated before children's position
  *     - if 'position' changed then 'redraw = 1'
  *     - parent node is drawn before its children
  * 
  * perhaps 2) and 3) can be merged...
+ * répartition entre niveau global et niveau local ??
+ *   size_by_content peut-il modifier redraw=1 en cas de changement ? ou est ce géré par chaque composant ?
+ *   size_by_layout peut-il modifier redraw ?
+ *   
  ************************************************************/
 
 
@@ -118,6 +121,7 @@ void size_by_content (Area *a)
                // if 'size' changed then 'resize = 1' on the parent
                if (a->_resize) {
                        a->_resize(a);
+                       a->redraw = 1;
                        ((Area*)a->parent)->resize = 1;
                }
        }
This page took 0.021153 seconds and 4 git commands to generate.