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
This commit is contained in:
Mike Blumenkrantz 2017-07-07 16:26:50 -04:00
parent 4be19d87f4
commit 5ffa2e7922
1 changed files with 4 additions and 0 deletions

View File

@ -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;