Elm_Sel_Format format;
Ecore_Wl2_Window *win;
Elm_Xdnd_Action action;
+ uint32_t selection_serial;
+ uint32_t drag_serial;
Eina_Bool active : 1;
};
}
types[count - 1] = 0;
- ecore_wl2_dnd_selection_set(ecore_wl2_window_input_get(win), types);
+ sel->selection_serial = ecore_wl2_dnd_selection_set(ecore_wl2_window_input_get(win), types);
free(types);
return EINA_TRUE;
ELM_SAFE_FREE(sel->selbuf, free);
sel->buflen = 0;
/* sel->clear(); */
- ecore_wl2_dnd_selection_clear(ecore_wl2_window_input_get(_wl_elm_widget_window_get(obj)));
+ sel->selection_serial = ecore_wl2_dnd_selection_clear(ecore_wl2_window_input_get(_wl_elm_widget_window_get(obj)));
return EINA_TRUE;
}
cnp_debug("In\n");
ev = event;
sel = data;
+ if ((ev->serial != sel->selection_serial) &&
+ (ev->serial != sel->drag_serial))
+ return ECORE_CALLBACK_RENEW;
for (i = 0; i < CNP_N_ATOMS; i++)
{
parent = ecore_evas_wayland2_window_get(ee);
}
- ecore_wl2_dnd_drag_start(ecore_wl2_window_input_get(win), parent, win);
+ wl_cnp_selection.drag_serial = ecore_wl2_dnd_drag_start(ecore_wl2_window_input_get(win), parent, win);
return EINA_TRUE;
}
cnp_debug("In\n");
ev = event;
-
+ if (ev->serial != wl_cnp_selection.drag_serial)
+ return ECORE_CALLBACK_RENEW;
if (dragdonecb) dragdonecb(dragdonedata, dragwidget);
if (dragwin)