bu5hm4n pushed a commit to branch enlightenment-0.19.

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

commit 367eea52ecc48ca3dcbe100e9f895a0abe580a9e
Author: Marcel Hollerbach <[email protected]>
Date:   Fri Dec 12 09:39:51 2014 +0100

    Register the new window into out evas.
    
    Summary:
    Otherwise the mouse up event is emitted to the evas but the evas does
    not work with it, because it does not know the window it is from. This
    leads to a evas_event_down_count_get bigger than 1 which leads to a
    missing mouse_out event. With this missing mouse_out event _post_up_handle
    in evas_event.c is not called anymore, this means all the click events
    are getting emitted to the object which was last clicked.
    
    This fixes T1894.
    
    Test Plan: Drag and Drop a icon somewhere and click somewhere after that, 
the evas will not get stuck anymore
    
    Reviewers: raster
    
    Subscribers: cedric, abyomi0, zmike, raster
    
    Maniphest Tasks: T1894
    
    Differential Revision: https://phab.enlightenment.org/D1771
---
 src/bin/e_dnd.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/bin/e_dnd.c b/src/bin/e_dnd.c
index 9b2d23f..60a04b6 100644
--- a/src/bin/e_dnd.c
+++ b/src/bin/e_dnd.c
@@ -285,6 +285,8 @@ e_drag_start(E_Drag *drag, int x, int y)
    _drag_win = ecore_x_window_input_new(drag->comp->win,
                                         drag->comp->man->x, drag->comp->man->y,
                                         drag->comp->man->w, 
drag->comp->man->h);
+   ecore_event_window_register(_drag_win, drag->comp->ee, drag->comp->evas,
+                                 NULL, NULL, NULL, NULL);
    ecore_x_window_show(_drag_win);
 #endif
    _drag_win_root = drag->comp->man->root;
@@ -1153,6 +1155,7 @@ _e_drag_free(E_Drag *drag)
      eina_stringshare_del(drag->types[i]);
    free(drag);
 #ifndef HAVE_WAYLAND_ONLY
+   ecore_event_window_unregister(_drag_win);
    ecore_x_window_free(_drag_win);
    ecore_x_window_shadow_tree_flush();
 #endif

-- 


Reply via email to