From 8b90bb89410df8ae5ed07d2fe8cb47961821b506 Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Tue, 26 Jan 2010 10:50:51 +0000 Subject: [PATCH] Completely fix conformant windows (wrt vkbd) in single layout mode. SVN revision: 45580 --- src/modules/illume2/policies/illume/layout.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/modules/illume2/policies/illume/layout.c b/src/modules/illume2/policies/illume/layout.c index ea98e7f8e..0c26b7225 100644 --- a/src/modules/illume2/policies/illume/layout.c +++ b/src/modules/illume2/policies/illume/layout.c @@ -258,6 +258,7 @@ _zone_layout_single(E_Border *bd) { int kx, ky, kw, kh; int ss = 0, ps = 0; + int nh, ny; e_illume_kbd_safe_app_region_get(bd->zone, &kx, &ky, &kw, &kh); if (!((bd->need_fullscreen) || (bd->fullscreen))) @@ -265,10 +266,17 @@ _zone_layout_single(E_Border *bd) if (kh >= bd->zone->h) ps = panelsize; ss = shelfsize; } - if ((bd->w != kw) || (bd->h != (kh - ss - ps))) - _zone_layout_border_resize(bd, kw, (kh - ss - ps)); - if ((bd->x != kx) || (bd->y != (ky + ss))) - _zone_layout_border_move(bd, kx, (ky + ss)); + nh = kh - ss - ps; + ny = ky + ss; + if (e_illume_border_is_conformant(bd)) + { + nh = kh; + ny = ky; + } + if ((bd->w != kw) || (bd->h != nh)) + _zone_layout_border_resize(bd, kw, nh); + if ((bd->x != kx) || (bd->y != ny)) + _zone_layout_border_move(bd, kx, ny); } static void