- Reset loss cb after invocation as it is no more needed
- When selection is set, previous owner loss cb is invoked only
if the new owner and the previous one are different.
_x11_sel_obj_del2, sel);
sel->widget = NULL;
sel->requestwidget = NULL;
+ sel->loss_cb = NULL;
+ sel->loss_data = NULL;
sel->active = EINA_FALSE;
- sel->widget = NULL;
ELM_SAFE_FREE(sel->selbuf, free);
return ECORE_CALLBACK_PASS_ON;
}
return elm_object_cnp_selection_clear(obj, selection);
sel = _x11_selections + selection;
- if (sel->loss_cb) sel->loss_cb(sel->loss_data, selection);
+ if (sel->widget != obj && sel->loss_cb) sel->loss_cb(sel->loss_data, selection);
if (sel->widget)
evas_object_event_callback_del_full(sel->widget, EVAS_CALLBACK_DEL,
_x11_sel_obj_del, sel);