discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=5ffa2e79224b730034aa37b4bf0e6eaec3b703fc

commit 5ffa2e79224b730034aa37b4bf0e6eaec3b703fc
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Fri Jul 7 16:26:50 2017 -0400

    elm_cnp: mark x11 selection as lost when selection is lost in event
    
    do not pretend that a widget maintains the selection when notified that
    the selection has been lost
    
    @fix
---
 src/lib/elementary/elm_cnp.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/lib/elementary/elm_cnp.c b/src/lib/elementary/elm_cnp.c
index 4ee9a74ba4..8ab3355e90 100644
--- a/src/lib/elementary/elm_cnp.c
+++ b/src/lib/elementary/elm_cnp.c
@@ -830,6 +830,7 @@ _x11_fixes_selection_notify(void *d EINA_UNUSED, int t 
EINA_UNUSED, void *event)
    Elm_Cnp_Event_Selection_Changed *e;
    Ecore_X_Event_Fixes_Selection_Notify *ev = event;
    Elm_Sel_Type type;
+   X11_Cnp_Selection *sel;
 
    switch (ev->selection)
      {
@@ -841,6 +842,9 @@ _x11_fixes_selection_notify(void *d EINA_UNUSED, int t 
EINA_UNUSED, void *event)
         break;
       default: return ECORE_CALLBACK_RENEW;
      }
+   sel = _x11_selections + type;
+   if (sel->active && (sel->xwin != ev->owner))
+     _x11_elm_object_cnp_selection_clear(sel->widget, type);
    e = calloc(1, sizeof(Elm_Cnp_Event_Selection_Changed));
    EINA_SAFETY_ON_NULL_RETURN_VAL(e, ECORE_CALLBACK_RENEW);
    e->type = type;

-- 


Reply via email to