diff --git a/src/modules/illume2/e_mod_layout_illume.c b/src/modules/illume2/e_mod_layout_illume.c index 88d06b4df..5143133cf 100644 --- a/src/modules/illume2/e_mod_layout_illume.c +++ b/src/modules/illume2/e_mod_layout_illume.c @@ -16,16 +16,6 @@ _border_add(E_Border *bd) 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); } @@ -36,15 +26,6 @@ _border_del(E_Border *bd) 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 @@ -134,82 +115,72 @@ _zone_layout(E_Zone *z) 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); } } }