all repos — tint2 @ 9e81bcbf6a03c54a42d77d9c4747182eb5d112df

fork of the tint2 desktop panel for my custom setup - only minimized windows across all desktops for the taskbar

revert rev 541 : we don t need to duplicate x,y

git-svn-id: http://tint2.googlecode.com/svn/trunk@543 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
thilor77 thilor77@121b4492-b84c-0410-8b4c-0d4edfb3f3cc
commit

9e81bcbf6a03c54a42d77d9c4747182eb5d112df

parent

d7914dd0ad86946a26f2f9aa93cb3273546d54b2

2 files changed, 12 insertions(+), 12 deletions(-)

jump to
M src/tooltip/tooltip.csrc/tooltip/tooltip.c

@@ -27,7 +27,7 @@ #include "tooltip.h"

#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 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 @@ pango_layout_get_pixel_extents(layout, &r1, &r2);

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;

@@ -136,9 +135,6 @@ else if (panel_position & LEFT)

x = panel->posx + panel->area.width; else x = panel->posx - width; - - if (!panel_horizontal) - y -= height/2; g_object_unref(layout); cairo_destroy(c);
M src/util/area.csrc/util/area.c

@@ -56,13 +56,12 @@ * In the end, redrawing an object (like the clock) could come from an external event (date change)

* 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'

@@ -70,6 +69,10 @@ * 4) redraw needed objects

* - 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 @@

// if 'size' changed then 'resize = 1' on the parent if (a->_resize) { a->_resize(a); + a->redraw = 1; ((Area*)a->parent)->resize = 1; } }