From dd7b5cc47dd9cab9e17f8d81013de3a10cc0e803 Mon Sep 17 00:00:00 2001 From: Seunghun Lee Date: Wed, 12 Jun 2013 15:02:08 +0900 Subject: [PATCH] In the case of sending rotation like message before illume's layout hook handler, the window has an unusual size has been fixed. Change-Id: Ib38fa25de159f60b78cc5b467a27ebd711680c08 --- src/bin/e_border.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/bin/e_border.c b/src/bin/e_border.c index e91608d..843e418 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -2024,8 +2024,18 @@ _e_border_move_resize_internal(E_Border *bd, if (bd->new_client) { - _e_border_pending_move_resize_add(bd, move, 1, x, y, w, h, without_border, 0); - return; + /* FIXME: hack for resizing vkbd like window. + * IT SHOULD BE REMOVED after move the code which set the geometry of vkbd like window + * to illume's layout hook handler. + * the job of pending move/resize wouldn't be processed, + * in case this function is called from "_e_border_rotation_check" via "e_hints_window_init". + * thus we have to move/resize directry without pending in case geometry hint is existed. */ + if (!_e_border_rotation_geom_get(bd, bd->zone, bd->client.e.state.rot.curr, + NULL, NULL, NULL, NULL, NULL)) + { + _e_border_pending_move_resize_add(bd, move, 1, x, y, w, h, without_border, 0); + return; + } } if (bd->maximized) @@ -10097,7 +10107,13 @@ _e_border_eval0(E_Border *bd) #endif #ifdef _F_ZONE_WINDOW_ROTATION_ if ((e_config->wm_win_rotation) && - (need_rotation_set)) + (need_rotation_set) && + /* since this parts of code is processed before illume's layout hook handler is processed, + * this border could be non-fullsize window at this time. + * in this case, if we send rotation like message to window, + * that window could have abnormal geometry. + * so, we skip it in case new_client for now.*/ + (!bd->new_client)) { ELB(ELBT_ROT, "NEED ROT", bd->client.win); Eina_Bool _rot = _e_border_rotation_check(bd); -- 2.7.4