if (illume_border_is_top_shelf(bd)) return;
if (illume_border_is_bottom_panel(bd)) return;
if (illume_border_is_keyboard(bd)) return;
- if ((bd->need_fullscreen) || (bd->fullscreen))
- {
- 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_focus_set(bd, 1, 1);
}
if (illume_border_is_top_shelf(bd)) return;
if (illume_border_is_bottom_panel(bd)) return;
if (illume_border_is_keyboard(bd)) return;
- if ((bd->need_fullscreen) || (bd->fullscreen))
- {
- 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
e_border_fx_offset(bd, z->x, (z->y + ((z->h - mh) / 2)));
}
else if ((bd->need_fullscreen) || (bd->fullscreen))
- e_border_fullscreen(bd, E_FULLSCREEN_RESIZE);
- else
{
+ int kx, ky, kw, kh;
+
+ e_kbd_safe_app_region_get(z, &kx, &ky, &kw, &kh);
if (!il_cfg->policy.mode.dual)
{
- if (illume_border_is_conformant(bd))
+ if ((bd->w != kw) || (bd->h != kh))
{
- 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);
+ bd->w = kw;
+ bd->h = kh;
+ bd->client.w = kw;
+ bd->client.h = kh;
+ bd->changes.size = 1;
}
- else
+ if ((bd->x != kx) || (bd->y != ky))
{
- 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));
+ bd->x = kx;
+ bd->y = ky;
+ bd->changes.pos = 1;
}
}
- else
+ }
+ else /* not fullscreen border; handle all other borders */
+ {
+ int kx, ky, kw, kh, ps, ss;
+ int bx, by, bw, bh;
+
+ ss = 0;
+ ps = 0;
+ e_kbd_safe_app_region_get(z, &kx, &ky, &kw, &kh);
+ if (!illume_border_is_conformant(bd))
+ {
+ if (kh >= z->h) ps = panelsize;
+ ss = shelfsize;
+ }
+ bx = kx;
+ by = (ky + ss);
+ bw = kw;
+ bh = (kh - ss - ps);
+ if (il_cfg->policy.mode.dual)
{
E_Border *b;
- int bx, by, bw, bh;
-
- bx = z->x;
- bw = z->w;
- by = (z->y + shelfsize);
- bh = (z->h - shelfsize - panelsize);
- /* in dual mode */
if (il_cfg->policy.mode.side == 0) /* top/bottom */
{
- bh = ((z->h - shelfsize - panelsize) / 2);
+ bh = (bh / 2);
b = illume_border_at_xy_get(bx, by);
if ((b) && (bd != b))
- by = by + bh;
+ by = (by + bh);
else if (b)
by = bd->fx.y;
- if (illume_border_is_conformant(bd))
- {
- by = z->y;
- bh = (z->h / 2);
- if ((b) && (bd != b))
- {
- by = b->fx.y + b->h;
- bh = (z->h - (b->fx.y + b->h));
- }
- else if (b)
- by = bd->fx.y;
- }
}
else if (il_cfg->policy.mode.side == 1) /* left/right */
{
- bw = (z->w / 2);
- b = illume_border_at_xy_get(bx, by);
+ bw = (bw / 2);
+ b = illume_border_at_xy_get(kx, by);
if ((b) && (bd != b))
- bx = bx + bw;
+ bx = (bx + bw);
else if (b)
bx = bd->x;
- if (illume_border_is_conformant(bd))
- {
- bx = z->x;
- by = z->y;
- bw = (z->w / 2);
- bh = z->h;
- if ((b) && (bd != b))
- bx = b->fx.x + b->w;
- }
}
- 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);
}
+ 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);
}
}
}