only apply mouse down focus events if a binding did not run on the same event
authorMike Blumenkrantz <zmike@osg.samsung.com>
Wed, 29 Apr 2015 21:15:43 +0000 (17:15 -0400)
committerMike Blumenkrantz <zmike@osg.samsung.com>
Wed, 29 Apr 2015 21:15:43 +0000 (17:15 -0400)
fixes the case of enabling "raise on click" and also having a mouse binding
for "lower on click" active

fix T2364

src/bin/e_client.c

index 48d95cfbac0102c24054e644ad4d08d9f4fbaab0..cc3544114e1ff1662eebb7db6319ed05c8e9a998 100644 (file)
@@ -2771,6 +2771,8 @@ e_client_mouse_wheel(E_Client *ec, Evas_Point *output, E_Binding_Event_Wheel *ev
 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;
+
    EINA_SAFETY_ON_NULL_RETURN(ec);
    if (action_client || ec->iconic || e_client_util_ignored_get(ec)) return;
    if ((button >= 1) && (button <= 3))
@@ -2798,6 +2800,7 @@ e_client_mouse_down(E_Client *ec, int button, Evas_Point *output, E_Binding_Even
                                              E_OBJECT(ec), ev);
         if (ec->cur_mouse_action)
           {
+             did_act = EINA_TRUE;
              if ((!ec->cur_mouse_action->func.end_mouse) &&
                  (!ec->cur_mouse_action->func.end))
                ec->cur_mouse_action = NULL;
@@ -2805,7 +2808,8 @@ e_client_mouse_down(E_Client *ec, int button, Evas_Point *output, E_Binding_Even
                e_object_ref(E_OBJECT(ec->cur_mouse_action));
           }
      }
-   e_focus_event_mouse_down(ec);
+   if (!did_act)
+     e_focus_event_mouse_down(ec);
    if ((button >= 1) && (button <= 3))
      {
         ec->mouse.last_down[button - 1].mx = output->x;