discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=3fc585efa3e95e09c7b15f2974c938c35bcbbc9b
commit 3fc585efa3e95e09c7b15f2974c938c35bcbbc9b Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Thu May 21 12:31:00 2015 -0400 fix focusing client on mouse events which trigger actions (with exceptions) block focus events only if focus has changed to another client or the current client's layer-actual has been lowered regression from 719b2baeba8133a021663e8281e6fd53662e8b16 --- src/bin/e_client.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 4270895..54d613e 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -2809,6 +2809,8 @@ EAPI void e_client_mouse_down(E_Client *ec, int button, Evas_Point *output, E_Binding_Event_Mouse_Button *ev) { Eina_Bool did_act = EINA_FALSE; + E_Client *pfocus; + int player; EINA_SAFETY_ON_NULL_RETURN(ec); if (action_client || ec->iconic) return; @@ -2830,6 +2832,8 @@ e_client_mouse_down(E_Client *ec, int button, Evas_Point *output, E_Binding_Even } ec->mouse.current.mx = output->x; ec->mouse.current.my = output->y; + pfocus = e_client_focused_get(); + player = ec->layer; if (!ec->cur_mouse_action) { ec->cur_mouse_action = @@ -2845,7 +2849,7 @@ e_client_mouse_down(E_Client *ec, int button, Evas_Point *output, E_Binding_Even e_object_ref(E_OBJECT(ec->cur_mouse_action)); } } - if (!did_act) + if ((!did_act) || (((pfocus == e_client_focused_get()) || (ec == e_client_focused_get())) && (ec->layer >= player))) e_focus_event_mouse_down(ec); if ((button >= 1) && (button <= 3)) { --