Enlightenment CVS committal Author : morlenxus Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_border.c Log Message: When a window is closed, the focus was given to a window on the wrong desktop. Fixies. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.617 retrieving revision 1.618 diff -u -3 -r1.617 -r1.618 --- e_border.c 27 Dec 2007 06:38:28 -0000 1.617 +++ e_border.c 28 Dec 2007 02:49:39 -0000 1.618 @@ -3509,18 +3509,30 @@ } else { - E_Border *pbd; - e_border_hide(bd, 0); - pbd = e_border_under_pointer_get(bd->desk, bd); - if (pbd) - e_border_focus_set(pbd, 1, 1); - else if (e_config->focus_policy == E_FOCUS_SLOPPY) + if (e_config->focus_revert_on_hide_or_close) { - /* If we could not determine a window under cursor but - * sloppy focus is enabled, we focus the most recently - * focused window */ - e_desk_last_focused_focus(bd->desk); + E_Border *pbd; + E_Container *con; + E_Zone *zone; + E_Desk *desk; + + con = e_container_current_get(e_manager_current_get()); + zone = e_zone_current_get(con); + desk = e_desk_current_get(zone); + + /* When using pointer focus, the border under the + * pointer (if any) gets focused, in sloppy/click + * focus the last focused window on the current + * desk gets focus */ + if (e_config->focus_policy == E_FOCUS_MOUSE) + { + pbd = e_border_under_pointer_get(desk, bd); + if (pbd) + e_border_focus_set(pbd, 1, 1); + } + else + e_desk_last_focused_focus(desk); } e_object_del(E_OBJECT(bd)); } ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs