discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=e70fcc565d356d42a4019d6b240627e141bf3c29

commit e70fcc565d356d42a4019d6b240627e141bf3c29
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 e70a280..76744e4 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -2772,6 +2772,8 @@ E_API 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 || e_client_util_ignored_get(ec)) return;
@@ -2793,6 +2795,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 =
@@ -2808,7 +2812,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))
      {

-- 


Reply via email to