raster pushed a commit to branch master.

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

commit afb62b498997ca038687c0cd0ca97aa361aaa1b7
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Sun Jun 28 17:24:29 2015 +0900

    e passive window grabs - fix side-effect leave/enter events on clients
    
    when you have click to focus we have a passive grab set up. somewhere
    that window changed to the parent window instead of the client. this
    leads to a side effect of a leave and enter event on clients for every
    click. generally clients are ok with this, but some seem to have buggy
    event handling. these enter/leave events are a side effect of the
    passive grab even though we allow/replay the event.
    
    this fixes that by placing passive grabs on the client window itself
    instead of the parent.
    
    @fix
---
 src/bin/e_comp_x.c |  7 +++----
 src/bin/e_focus.c  | 12 ++++++------
 2 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 53e5199..90c307d 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -181,16 +181,15 @@ _e_comp_x_focus_setup(E_Client *ec)
    if (!((e_client_focus_policy_click(ec)) ||
        (e_config->always_click_to_raise) ||
        (e_config->always_click_to_focus))) return;
-        
-   ecore_x_window_button_grab(_e_comp_x_client_util_pwin_get(ec), 1,
+   ecore_x_window_button_grab(_e_comp_x_client_util_win_get(ec), 1,
                               ECORE_X_EVENT_MASK_MOUSE_DOWN |
                               ECORE_X_EVENT_MASK_MOUSE_UP |
                               ECORE_X_EVENT_MASK_MOUSE_MOVE, 0, 1);
-   ecore_x_window_button_grab(_e_comp_x_client_util_pwin_get(ec), 2,
+   ecore_x_window_button_grab(_e_comp_x_client_util_win_get(ec), 2,
                               ECORE_X_EVENT_MASK_MOUSE_DOWN |
                               ECORE_X_EVENT_MASK_MOUSE_UP |
                               ECORE_X_EVENT_MASK_MOUSE_MOVE, 0, 1);
-   ecore_x_window_button_grab(_e_comp_x_client_util_pwin_get(ec), 3,
+   ecore_x_window_button_grab(_e_comp_x_client_util_win_get(ec), 3,
                               ECORE_X_EVENT_MASK_MOUSE_DOWN |
                               ECORE_X_EVENT_MASK_MOUSE_UP |
                               ECORE_X_EVENT_MASK_MOUSE_MOVE, 0, 1);
diff --git a/src/bin/e_focus.c b/src/bin/e_focus.c
index c1e5e6d..fc4cfbc 100644
--- a/src/bin/e_focus.c
+++ b/src/bin/e_focus.c
@@ -71,9 +71,9 @@ e_focus_event_focus_in(E_Client *ec)
         e_bindings_mouse_ungrab(E_BINDING_CONTEXT_WINDOW, 
e_client_util_pwin_get(ec));
         e_bindings_wheel_ungrab(E_BINDING_CONTEXT_WINDOW, 
e_client_util_pwin_get(ec));
 #ifndef HAVE_WAYLAND_ONLY
-        ecore_x_window_button_ungrab(e_client_util_pwin_get(ec), 1, 0, 1);
-        ecore_x_window_button_ungrab(e_client_util_pwin_get(ec), 2, 0, 1);
-        ecore_x_window_button_ungrab(e_client_util_pwin_get(ec), 3, 0, 1);
+        ecore_x_window_button_ungrab(e_client_util_win_get(ec), 1, 0, 1);
+        ecore_x_window_button_ungrab(e_client_util_win_get(ec), 2, 0, 1);
+        ecore_x_window_button_ungrab(e_client_util_win_get(ec), 3, 0, 1);
 #endif
         e_bindings_mouse_grab(E_BINDING_CONTEXT_WINDOW, 
e_client_util_pwin_get(ec));
         e_bindings_wheel_grab(E_BINDING_CONTEXT_WINDOW, 
e_client_util_pwin_get(ec));
@@ -90,15 +90,15 @@ e_focus_event_focus_out(E_Client *ec)
      {
         if (ec->button_grabbed) return;
 #ifndef HAVE_WAYLAND_ONLY
-        ecore_x_window_button_grab(e_client_util_pwin_get(ec), 1,
+        ecore_x_window_button_grab(e_client_util_win_get(ec), 1,
                                    ECORE_X_EVENT_MASK_MOUSE_DOWN |
                                    ECORE_X_EVENT_MASK_MOUSE_UP |
                                    ECORE_X_EVENT_MASK_MOUSE_MOVE, 0, 1);
-        ecore_x_window_button_grab(e_client_util_pwin_get(ec), 2,
+        ecore_x_window_button_grab(e_client_util_win_get(ec), 2,
                                    ECORE_X_EVENT_MASK_MOUSE_DOWN |
                                    ECORE_X_EVENT_MASK_MOUSE_UP |
                                    ECORE_X_EVENT_MASK_MOUSE_MOVE, 0, 1);
-        ecore_x_window_button_grab(e_client_util_pwin_get(ec), 3,
+        ecore_x_window_button_grab(e_client_util_win_get(ec), 3,
                                    ECORE_X_EVENT_MASK_MOUSE_DOWN |
                                    ECORE_X_EVENT_MASK_MOUSE_UP |
                                    ECORE_X_EVENT_MASK_MOUSE_MOVE, 0, 1);

-- 


Reply via email to