forked from enlightenment/efl
[DnD] Fix bug of hard-coded type when drag
Summary: When we start dragging, the type is always set to "text/uri-list" no matter the format type set by application. This patch fixs this hard-coded type issue. It will set types corresponding to the format type set by application. For example, if application set format as ELM_SEL_FORMAT_TEXT, it will set types UTF8_STRING, STRING, COMPOUND_TEXT, TEXT, text/plain, text/plain;charset=utf-8. Reviewers: JackDanielZ, raster Reviewed By: raster CC: woohyun, seoz Differential Revision: https://phab.enlightenment.org/D546
This commit is contained in:
parent
68a8e25672
commit
ae8c65f968
|
@ -2024,6 +2024,7 @@ _x11_elm_drag_start(Evas_Object *obj, Elm_Sel_Format format, const char *data,
|
||||||
Evas_Object *icon = NULL;
|
Evas_Object *icon = NULL;
|
||||||
int w = 0, h = 0;
|
int w = 0, h = 0;
|
||||||
Ecore_X_Atom actx;
|
Ecore_X_Atom actx;
|
||||||
|
int i;
|
||||||
|
|
||||||
_x11_elm_cnp_init();
|
_x11_elm_cnp_init();
|
||||||
|
|
||||||
|
@ -2035,7 +2036,24 @@ _x11_elm_drag_start(Evas_Object *obj, Elm_Sel_Format format, const char *data,
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
ecore_x_dnd_type_set(xwin, "text/uri-list", EINA_TRUE);
|
ecore_x_dnd_types_set(xwin, NULL, 0);
|
||||||
|
for (i = 0; i < CNP_N_ATOMS; i++)
|
||||||
|
{
|
||||||
|
if (_x11_atoms[i].formats == ELM_SEL_FORMAT_TARGETS)
|
||||||
|
{
|
||||||
|
if (format == ELM_SEL_FORMAT_TARGETS)
|
||||||
|
{
|
||||||
|
ecore_x_dnd_type_set(xwin, _x11_atoms[i].name, EINA_TRUE);
|
||||||
|
cnp_debug("set dnd type: %s\n", _x11_atoms[i].name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (_x11_atoms[i].formats & format)
|
||||||
|
{
|
||||||
|
ecore_x_dnd_type_set(xwin, _x11_atoms[i].name, EINA_TRUE);
|
||||||
|
cnp_debug("set dnd type: %s\n", _x11_atoms[i].name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sel = _x11_selections + ELM_SEL_TYPE_XDND;
|
sel = _x11_selections + ELM_SEL_TYPE_XDND;
|
||||||
sel->active = EINA_TRUE;
|
sel->active = EINA_TRUE;
|
||||||
sel->widget = obj;
|
sel->widget = obj;
|
||||||
|
|
Loading…
Reference in New Issue