From 953b80f8efe7dc86140e6c16578b663784b7db44 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 15 Jul 2015 14:47:35 -0400 Subject: [PATCH] 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 730c90955..b459400d6 100644 --- a/src/modules/winlist/e_winlist.c +++ b/src/modules/winlist/e_winlist.c @@ -277,6 +277,8 @@ e_winlist_hide(void) e_comp_ungrab_input(1, 1); if (ec) { + Eina_Bool set = !ec->lock_focus_out; + if (ec->shaded) { if (!ec->lock_user_shade) @@ -304,9 +306,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);