Handle another corner case wrt layout. Dual mode working nicely now even

with moving indicator (just need to handle conformant & fullscreen now).



SVN revision: 44611
This commit is contained in:
Christopher Michael 2009-12-20 17:29:04 +00:00
parent a9af8c438d
commit 4d32e932ea
3 changed files with 27 additions and 3 deletions

View File

@ -388,7 +388,27 @@ illume_border_at_xy_get(int x, int y)
bds = illume_border_valid_borders_get();
EINA_LIST_FOREACH(bds, l, bd)
{
if ((bd->fx.x == x) && (bd->fx.y == y))
if (((bd->fx.x == x) && (bd->fx.y == y)) ||
((bd->x == x) && (bd->y == y)))
{
b = bd;
break;
}
}
eina_list_free(bds);
return b;
}
E_Border *
illume_border_in_region_get(int x, int y, int w, int h)
{
Eina_List *bds, *l;
E_Border *bd, *b = NULL;
bds = illume_border_valid_borders_get();
EINA_LIST_FOREACH(bds, l, bd)
{
if (E_INSIDE(bd->x, bd->y, x, y, w, h))
{
b = bd;
break;
@ -523,7 +543,7 @@ illume_border_app2_safe_region_get(E_Zone *zone, int *x, int *y, int *w, int *h)
illume_border_top_shelf_size_get(NULL, &th);
illume_border_bottom_panel_size_get(NULL, &bh);
ny = (ty + th);
nh = (nh- ny - bh);
nh = (nh - ny - bh);
if (x) *x = nx;
if (y) *y = ny;
if (w) *w = nw;

View File

@ -59,6 +59,7 @@ Eina_List *illume_border_valid_borders_get(void);
E_Border *illume_border_valid_border_get(void);
int illume_border_valid_count_get(void);
E_Border *illume_border_at_xy_get(int x, int y);
E_Border *illume_border_in_region_get(int x, int y, int w, int h);
E_Border *illume_border_keyboard_get(void);
E_Border *illume_border_top_shelf_get(void);
E_Border *illume_border_bottom_panel_get(void);

View File

@ -551,7 +551,10 @@ _zone_layout_dual_top_custom(E_Border *bd)
by = ay;
}
}
_border_resize_fx(bd, kx, by, kw, bh);
if ((bd->w != kw) || (bd->h != bh))
e_border_resize(bd, kw, bh);
if ((bd->x != kx) || (bd->y != by) || (bd->fx.y != by))
e_border_fx_offset(bd, kx, by);
}
}