diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 183d14e25..61b0a88c7 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -2088,7 +2088,14 @@ e_border_focus_set_with_pointer(E_Border *bd) if (e_config->focus_policy == E_FOCUS_CLICK) return; if (!bd->visible) return; - if (e_config->focus_policy == E_FOCUS_MOUSE) + if (e_config->focus_policy == E_FOCUS_SLOPPY) + { + if (!e_border_under_pointer_get(bd->desk, bd)) + { + e_border_pointer_warp_to_center(bd); + } + } + else { e_border_pointer_warp_to_center(bd); } diff --git a/src/modules/winlist/e_winlist.c b/src/modules/winlist/e_winlist.c index ade55d1a0..c443b5bc9 100644 --- a/src/modules/winlist/e_winlist.c +++ b/src/modules/winlist/e_winlist.c @@ -337,7 +337,7 @@ e_winlist_hide(void) e_border_focus_set(bd, 1, 1); e_border_focus_latest_set(bd); } - if ((e_config->focus_policy == E_FOCUS_MOUSE) || + if ((e_config->focus_policy != E_FOCUS_CLICK) || (e_config->winlist_warp_at_end) || (e_config->winlist_warp_while_selecting)) ecore_x_pointer_warp(bd->zone->container->win, _warp_to_x, _warp_to_y);