discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8fb7bb18bdcf26048f71cf1b242751c69c266e35
commit 8fb7bb18bdcf26048f71cf1b242751c69c266e35 Author: Mike Blumenkrantz <[email protected]> Date: Wed Jul 15 14:47:35 2015 -0400 ensure that focus is set and focus stack is managed on winlist hide if pointer warping is disabled, attempting to pointer warp with mouse-based focus policies will fail here, preventing focus from being applied as expected ref T2566 --- src/modules/winlist/e_winlist.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/modules/winlist/e_winlist.c b/src/modules/winlist/e_winlist.c index c364b02..923e30d 100644 --- a/src/modules/winlist/e_winlist.c +++ b/src/modules/winlist/e_winlist.c @@ -279,6 +279,8 @@ e_winlist_hide(void) e_comp_ungrab_input(e_comp_get(NULL), 1, 1); if (ec) { + Eina_Bool set = !ec->lock_focus_out; + if (ec->shaded) { if (!ec->lock_user_shade) @@ -306,9 +308,9 @@ e_winlist_hide(void) (e_config->winlist_warp_at_end) || (e_config->winlist_warp_while_selecting)) { - e_client_pointer_warp_to_center_now(ec); + set |= !e_client_pointer_warp_to_center_now(ec); } - else if (!ec->lock_focus_out) + if (set) { evas_object_focus_set(ec->frame, 1); e_client_focus_latest_set(ec); --
