forked from enlightenment/enlightenment
Make basic dual mode work :) (this does not cover conformant apps yet, just
'basic' apps). SVN revision: 44260
This commit is contained in:
parent
40d60d8c56
commit
f95bb4526e
|
@ -347,24 +347,23 @@ illume_border_valid_borders_get(void)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
Eina_Bool
|
E_Border *
|
||||||
illume_border_at_xy(int x, int y)
|
illume_border_at_xy_get(int x, int y)
|
||||||
{
|
{
|
||||||
Eina_List *bds, *l;
|
Eina_List *bds, *l;
|
||||||
E_Border *bd;
|
E_Border *bd, *b = NULL;
|
||||||
int ret = EINA_FALSE;
|
|
||||||
|
|
||||||
bds = illume_border_valid_borders_get();
|
bds = illume_border_valid_borders_get();
|
||||||
EINA_LIST_FOREACH(bds, l, bd)
|
EINA_LIST_FOREACH(bds, l, bd)
|
||||||
{
|
{
|
||||||
if ((bd->x == x) && (bd->y == y))
|
if ((bd->fx.x == x) && (bd->fx.y == y))
|
||||||
{
|
{
|
||||||
ret = EINA_TRUE;
|
b = bd;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
eina_list_free(bds);
|
eina_list_free(bds);
|
||||||
return ret;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
E_Border *
|
E_Border *
|
||||||
|
|
|
@ -54,7 +54,7 @@ Eina_Bool illume_border_is_overlay(E_Border *bd);
|
||||||
Eina_Bool illume_border_is_conformant(E_Border *bd);
|
Eina_Bool illume_border_is_conformant(E_Border *bd);
|
||||||
|
|
||||||
Eina_List *illume_border_valid_borders_get(void);
|
Eina_List *illume_border_valid_borders_get(void);
|
||||||
Eina_Bool illume_border_at_xy(int x, int y);
|
E_Border *illume_border_at_xy_get(int x, int y);
|
||||||
E_Border *illume_border_top_shelf_get(void);
|
E_Border *illume_border_top_shelf_get(void);
|
||||||
E_Border *illume_border_bottom_panel_get(void);
|
E_Border *illume_border_bottom_panel_get(void);
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,15 @@ _border_add(E_Border *bd)
|
||||||
if (illume_border_is_top_shelf(bd)) return;
|
if (illume_border_is_top_shelf(bd)) return;
|
||||||
if (illume_border_is_bottom_panel(bd)) return;
|
if (illume_border_is_bottom_panel(bd)) return;
|
||||||
if (illume_border_is_keyboard(bd)) return;
|
if (illume_border_is_keyboard(bd)) return;
|
||||||
|
if (illume_border_is_conformant(bd))
|
||||||
|
{
|
||||||
|
E_Border *b;
|
||||||
|
|
||||||
|
b = illume_border_top_shelf_get();
|
||||||
|
if (b) e_border_fx_offset(b, 0, -shelfsize);
|
||||||
|
b = illume_border_bottom_panel_get();
|
||||||
|
if (b) e_border_fx_offset(b, 0, -panelsize);
|
||||||
|
}
|
||||||
e_border_raise(bd);
|
e_border_raise(bd);
|
||||||
e_border_focus_set(bd, 1, 1);
|
e_border_focus_set(bd, 1, 1);
|
||||||
}
|
}
|
||||||
|
@ -26,7 +35,12 @@ _border_add(E_Border *bd)
|
||||||
static void
|
static void
|
||||||
_border_del(E_Border *bd)
|
_border_del(E_Border *bd)
|
||||||
{ // handle a border being deleted
|
{ // handle a border being deleted
|
||||||
|
E_Border *b;
|
||||||
|
|
||||||
|
b = illume_border_top_shelf_get();
|
||||||
|
if (b) e_border_fx_offset(b, 0, 0);
|
||||||
|
b = illume_border_bottom_panel_get();
|
||||||
|
if (b) e_border_fx_offset(b, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -85,55 +99,76 @@ _zone_layout(E_Zone *z)
|
||||||
illume_border_min_get(bd, &mw, &mh);
|
illume_border_min_get(bd, &mw, &mh);
|
||||||
if (illume_border_is_top_shelf(bd))
|
if (illume_border_is_top_shelf(bd))
|
||||||
{
|
{
|
||||||
if ((bd->x != z->x) || (bd->y != z->y) || (bd->w != z->w) ||
|
if ((bd->w != z->w) || (bd->h != shelfsize))
|
||||||
(bd->h != shelfsize))
|
e_border_resize(bd, z->w, shelfsize);
|
||||||
e_border_move_resize(bd, z->x, z->y, z->w, shelfsize);
|
if ((bd->x != z->x) || (bd->y != z->y))
|
||||||
|
e_border_fx_offset(bd, z->x, z->y);
|
||||||
e_border_stick(bd);
|
e_border_stick(bd);
|
||||||
}
|
}
|
||||||
else if (illume_border_is_bottom_panel(bd))
|
else if (illume_border_is_bottom_panel(bd))
|
||||||
{
|
{
|
||||||
if ((bd->x != z->x) || (bd->y != (z->y + z->h - panelsize)) ||
|
if ((bd->w != z->w) || (bd->h != panelsize))
|
||||||
(bd->w != z->w) || (bd->h != panelsize))
|
e_border_resize(bd, z->w, panelsize);
|
||||||
e_border_move_resize(bd, z->x, z->y + z->h - panelsize,
|
if ((bd->x != z->x) || (bd->y != (z->y + z->h - panelsize)))
|
||||||
z->w, panelsize);
|
e_border_fx_offset(bd, z->x, (z->y + z->h - panelsize));
|
||||||
e_border_stick(bd);
|
e_border_stick(bd);
|
||||||
}
|
}
|
||||||
else if (illume_border_is_keyboard(bd))
|
else if (illume_border_is_keyboard(bd))
|
||||||
{
|
{
|
||||||
if ((bd->x != z->x) || (bd->y != (z->y + z->h - kbdsize)) ||
|
if ((bd->w != z->w) || (bd->h != kbdsize))
|
||||||
(bd->w != z->w) || (bd->h != kbdsize))
|
e_border_resize(bd, z->w, kbdsize);
|
||||||
e_border_move_resize(bd, z->x, z->y + z->h - kbdsize,
|
if ((bd->x != z->x) || (bd->y != (z->y + z->h - kbdsize)))
|
||||||
z->w, kbdsize);
|
e_border_fx_offset(bd, z->x, (z->y + z->h - kbdsize));
|
||||||
}
|
|
||||||
else if (illume_border_is_home(bd))
|
|
||||||
{
|
|
||||||
if ((bd->x != z->x) || (bd->y != z->y + shelfsize) ||
|
|
||||||
(bd->w != z->w) || (bd->h != (z->h - shelfsize - panelsize)))
|
|
||||||
e_border_move_resize(bd, z->x, z->y + shelfsize, z->w,
|
|
||||||
z->h - shelfsize - panelsize);
|
|
||||||
}
|
}
|
||||||
else if (illume_border_is_dialog(bd))
|
else if (illume_border_is_dialog(bd))
|
||||||
{
|
{
|
||||||
if (mh > z->h) mh = z->h;
|
if (mh > z->h) mh = z->h;
|
||||||
if ((bd->x != z->x) || (bd->y != (z->y + ((z->h - mh) / 2))) ||
|
if ((bd->w != z->w) || (bd->h != mh))
|
||||||
(bd->w != z->w) || (bd->h != mh))
|
e_border_resize(bd, z->w, mh);
|
||||||
e_border_move_resize(bd, z->x, z->y + ((z->h - mh) / 2),
|
if ((bd->x != z->x) || (bd->y != (z->y + ((z->h - mh) / 2))))
|
||||||
z->w, mh);
|
e_border_fx_offset(bd, z->x, (z->y + ((z->h - mh) / 2)));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (illume_border_is_conformant(bd))
|
if (!il_cfg->policy.mode.dual)
|
||||||
{
|
{
|
||||||
if ((bd->x != z->x) || (bd->y != z->y) ||
|
if (illume_border_is_conformant(bd))
|
||||||
(bd->w != z->w) || (bd->h != z->h))
|
{
|
||||||
e_border_move_resize(bd, z->x, z->y, z->w, z->h);
|
if ((bd->w != z->w) || (bd->h != z->h))
|
||||||
|
e_border_resize(bd, z->w, z->h);
|
||||||
|
if ((bd->x != z->x) || (bd->y != z->y))
|
||||||
|
e_border_fx_offset(bd, z->x, z->y);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ((bd->w != z->w) || (bd->h != (z->h - shelfsize - panelsize)))
|
||||||
|
e_border_resize(bd, z->w, (z->h - shelfsize - panelsize));
|
||||||
|
if ((bd->x != z->x) || (bd->y != (z->y + shelfsize)))
|
||||||
|
e_border_fx_offset(bd, z->x, (z->y + shelfsize));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ((bd->x != z->x) || (bd->y != z->y + shelfsize) ||
|
E_Border *b;
|
||||||
(bd->w != z->w) || (bd->h != z->h - shelfsize - panelsize))
|
int bx, by, bw, bh;
|
||||||
e_border_move_resize(bd, z->x, z->y + shelfsize, z->w,
|
|
||||||
z->h - shelfsize - panelsize);
|
/* in dual mode */
|
||||||
|
if (il_cfg->policy.mode.side == 0) /* top/left */
|
||||||
|
{
|
||||||
|
bx = z->x;
|
||||||
|
bw = z->w;
|
||||||
|
by = (z->y + shelfsize);
|
||||||
|
bh = ((z->h - shelfsize - panelsize) / 2);
|
||||||
|
b = illume_border_at_xy_get(bx, by);
|
||||||
|
if ((b) && (bd != b))
|
||||||
|
by = by + bh;
|
||||||
|
else if (b)
|
||||||
|
by = bd->y;
|
||||||
|
if ((bd->w != bw) || (bd->h != bh))
|
||||||
|
e_border_resize(bd, bw, bh);
|
||||||
|
if ((bd->x != bx) || (bd->y != by))
|
||||||
|
e_border_fx_offset(bd, bx, by);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue