forked from enlightenment/efl
From: Hyoyoung Chang <hyoyoung@gmail.com>
Subject: [E-devel] [patch] elm_cnp_helper - change elm_cnp_selection_set and code cleanup Date: Tue, 27 Dec 2011 20:15:14 +0900 Dear all. As discomfitor suggested, I cleanup some codes. elm_cnp_selection_set : add buffer length argument and check for image type. (i think it's urgent issue before elm_cnp_selection_set api is widely used.) enum defines : add 'type' prefix. Thanks SVN revision: 66566
This commit is contained in:
parent
90d1d1635e
commit
84554addb8
|
@ -30414,30 +30414,30 @@ extern "C" {
|
|||
|
||||
typedef enum _Elm_Sel_Type
|
||||
{
|
||||
ELM_SEL_PRIMARY,
|
||||
ELM_SEL_SECONDARY,
|
||||
ELM_SEL_CLIPBOARD,
|
||||
ELM_SEL_XDND,
|
||||
ELM_SEL_TYPE_PRIMARY,
|
||||
ELM_SEL_TYPE_SECONDARY,
|
||||
ELM_SEL_TYPE_CLIPBOARD,
|
||||
ELM_SEL_TYPE_XDND,
|
||||
|
||||
ELM_SEL_MAX,
|
||||
ELM_SEL_TYPE_MAX,
|
||||
} Elm_Sel_Type;
|
||||
|
||||
typedef enum _Elm_Sel_Format
|
||||
{
|
||||
/** Targets: for matching every atom requesting */
|
||||
ELM_SEL_TARGETS = -1,
|
||||
ELM_SEL_FORMAT_TARGETS = -1,
|
||||
/** they come from outside of elm */
|
||||
ELM_SEL_FORMAT_NONE = 0x0,
|
||||
ELM_SEL_FORMAT_NONE = 0x0,
|
||||
/** Plain unformated text: Used for things that don't want rich markup */
|
||||
ELM_SEL_FORMAT_TEXT = 0x01,
|
||||
ELM_SEL_FORMAT_TEXT = 0x01,
|
||||
/** Edje textblock markup, including inline images */
|
||||
ELM_SEL_FORMAT_MARKUP = 0x02,
|
||||
ELM_SEL_FORMAT_MARKUP = 0x02,
|
||||
/** Images */
|
||||
ELM_SEL_FORMAT_IMAGE = 0x04,
|
||||
ELM_SEL_FORMAT_IMAGE = 0x04,
|
||||
/** Vcards */
|
||||
ELM_SEL_FORMAT_VCARD = 0x08,
|
||||
ELM_SEL_FORMAT_VCARD = 0x08,
|
||||
/** Raw HTMLish things for widgets that want that stuff (hello webkit!) */
|
||||
ELM_SEL_FORMAT_HTML = 0x10,
|
||||
ELM_SEL_FORMAT_HTML = 0x10,
|
||||
|
||||
ELM_SEL_FORMAT_MAX
|
||||
} Elm_Sel_Format;
|
||||
|
@ -30445,9 +30445,9 @@ extern "C" {
|
|||
struct _Elm_Selection_Data
|
||||
{
|
||||
int x, y;
|
||||
Elm_Sel_Format format;
|
||||
Elm_Sel_Format format;
|
||||
void *data;
|
||||
int len;
|
||||
size_t len;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -30466,7 +30466,7 @@ extern "C" {
|
|||
*
|
||||
*/
|
||||
|
||||
EAPI Eina_Bool elm_cnp_selection_set(Elm_Sel_Type selection, Evas_Object *widget, Elm_Sel_Format format, const char *buf);
|
||||
EAPI Eina_Bool elm_cnp_selection_set(Elm_Sel_Type selection, Evas_Object *widget, Elm_Sel_Format format, const void *buf, size_t buflen);
|
||||
|
||||
/**
|
||||
* @brief Retrive the data from the widget which is set for copying and pasting.
|
||||
|
|
|
@ -62,19 +62,19 @@ enum
|
|||
|
||||
struct _Cnp_Selection
|
||||
{
|
||||
const char *debug;
|
||||
Evas_Object *widget;
|
||||
char *selbuf;
|
||||
Evas_Object *requestwidget;
|
||||
void *udata;
|
||||
Elm_Sel_Format requestformat;
|
||||
Elm_Drop_Cb datacb;
|
||||
const char *debug;
|
||||
Evas_Object *widget;
|
||||
char *selbuf;
|
||||
Evas_Object *requestwidget;
|
||||
void *udata;
|
||||
Elm_Sel_Format requestformat;
|
||||
Elm_Drop_Cb datacb;
|
||||
Eina_Bool (*set) (Ecore_X_Window, const void *data, int size);
|
||||
Eina_Bool (*clear) (void);
|
||||
void (*request) (Ecore_X_Window, const char *target);
|
||||
|
||||
Elm_Sel_Format format;
|
||||
Ecore_X_Selection ecore_sel;
|
||||
Elm_Sel_Format format;
|
||||
Ecore_X_Selection ecore_sel;
|
||||
|
||||
Eina_Bool active : 1;
|
||||
};
|
||||
|
@ -82,7 +82,7 @@ struct _Cnp_Selection
|
|||
struct _Escape
|
||||
{
|
||||
const char *escape;
|
||||
const char *value;
|
||||
const char *value;
|
||||
};
|
||||
|
||||
struct _Tmp_Info
|
||||
|
@ -96,7 +96,7 @@ struct _Tmp_Info
|
|||
struct _Cnp_Atom
|
||||
{
|
||||
const char *name;
|
||||
Elm_Sel_Format formats;
|
||||
Elm_Sel_Format formats;
|
||||
/* Called by ecore to do conversion */
|
||||
Converter_Fn_Cb converter;
|
||||
Response_Handler_Cb response;
|
||||
|
@ -116,11 +116,11 @@ struct _Saved_Type
|
|||
|
||||
struct _Dropable
|
||||
{
|
||||
Evas_Object *obj;
|
||||
Evas_Object *obj;
|
||||
/* FIXME: Cache window */
|
||||
Elm_Sel_Format types;
|
||||
Elm_Drop_Cb dropcb;
|
||||
void *cbdata;
|
||||
Elm_Sel_Format types;
|
||||
Elm_Drop_Cb dropcb;
|
||||
void *cbdata;
|
||||
};
|
||||
|
||||
static Tmp_Info *elm_cnp_tempfile_create(int size);
|
||||
|
@ -168,7 +168,7 @@ static const Escape escapes[] = {
|
|||
static Cnp_Atom atoms[CNP_N_ATOMS] = {
|
||||
[CNP_ATOM_TARGETS] = {
|
||||
"TARGETS",
|
||||
ELM_SEL_TARGETS,
|
||||
ELM_SEL_FORMAT_TARGETS,
|
||||
targets_converter,
|
||||
response_handler_targets,
|
||||
notify_handler_targets,
|
||||
|
@ -176,7 +176,7 @@ static Cnp_Atom atoms[CNP_N_ATOMS] = {
|
|||
},
|
||||
[CNP_ATOM_ATOM] = {
|
||||
"ATOM", // for opera browser
|
||||
ELM_SEL_TARGETS,
|
||||
ELM_SEL_FORMAT_TARGETS,
|
||||
targets_converter,
|
||||
response_handler_targets,
|
||||
notify_handler_targets,
|
||||
|
@ -342,29 +342,29 @@ static Cnp_Atom atoms[CNP_N_ATOMS] = {
|
|||
},
|
||||
};
|
||||
|
||||
static Cnp_Selection selections[ELM_SEL_MAX] = {
|
||||
ARRAYINIT(ELM_SEL_PRIMARY) {
|
||||
static Cnp_Selection selections[ELM_SEL_TYPE_MAX] = {
|
||||
ARRAYINIT(ELM_SEL_TYPE_PRIMARY) {
|
||||
.debug = "Primary",
|
||||
.ecore_sel = ECORE_X_SELECTION_PRIMARY,
|
||||
.set = ecore_x_selection_primary_set,
|
||||
.clear = ecore_x_selection_primary_clear,
|
||||
.request = ecore_x_selection_primary_request,
|
||||
},
|
||||
ARRAYINIT(ELM_SEL_SECONDARY) {
|
||||
ARRAYINIT(ELM_SEL_TYPE_SECONDARY) {
|
||||
.debug = "Secondary",
|
||||
.ecore_sel = ECORE_X_SELECTION_SECONDARY,
|
||||
.set = ecore_x_selection_secondary_set,
|
||||
.clear = ecore_x_selection_secondary_clear,
|
||||
.request = ecore_x_selection_secondary_request,
|
||||
},
|
||||
ARRAYINIT(ELM_SEL_CLIPBOARD) {
|
||||
ARRAYINIT(ELM_SEL_TYPE_CLIPBOARD) {
|
||||
.debug = "Clipboard",
|
||||
.ecore_sel = ECORE_X_SELECTION_CLIPBOARD,
|
||||
.set = ecore_x_selection_clipboard_set,
|
||||
.clear = ecore_x_selection_clipboard_clear,
|
||||
.request = ecore_x_selection_clipboard_request,
|
||||
},
|
||||
ARRAYINIT(ELM_SEL_XDND) {
|
||||
ARRAYINIT(ELM_SEL_TYPE_XDND) {
|
||||
.debug = "XDnD",
|
||||
.ecore_sel = ECORE_X_SELECTION_XDND,
|
||||
.request = ecore_x_selection_xdnd_request,
|
||||
|
@ -408,7 +408,8 @@ elm_selection_selection_has_owner(void)
|
|||
}
|
||||
|
||||
Eina_Bool
|
||||
elm_cnp_selection_set(Elm_Sel_Type selection, Evas_Object *widget, Elm_Sel_Format format, const char *selbuf)
|
||||
elm_cnp_selection_set(Elm_Sel_Type selection, Evas_Object *widget,
|
||||
Elm_Sel_Format format, const void *selbuf, size_t buflen)
|
||||
{
|
||||
#ifdef HAVE_ELEMENTARY_X
|
||||
Evas_Object *top = elm_widget_top_get(widget);
|
||||
|
@ -418,7 +419,8 @@ elm_cnp_selection_set(Elm_Sel_Type selection, Evas_Object *widget, Elm_Sel_Forma
|
|||
if (top) xwin = elm_win_xwindow_get(top);
|
||||
else xwin = elm_win_xwindow_get(widget);
|
||||
if (!xwin) return EINA_FALSE;
|
||||
if ((unsigned int)selection >= (unsigned int)ELM_SEL_MAX) return EINA_FALSE;
|
||||
if ((unsigned int)selection >= (unsigned int)ELM_SEL_TYPE_MAX)
|
||||
return EINA_FALSE;
|
||||
if (!_elm_cnp_init_count) _elm_cnp_init();
|
||||
if ((!selbuf) && (format != ELM_SEL_FORMAT_IMAGE))
|
||||
return elm_cnp_selection_clear(selection, widget);
|
||||
|
@ -430,7 +432,20 @@ elm_cnp_selection_set(Elm_Sel_Type selection, Evas_Object *widget, Elm_Sel_Forma
|
|||
|
||||
sel->set(xwin, &selection, sizeof(Elm_Sel_Type));
|
||||
sel->format = format;
|
||||
sel->selbuf = selbuf ? strdup(selbuf) : NULL;
|
||||
|
||||
if (selbuf)
|
||||
{
|
||||
if (format == ELM_SEL_FORMAT_IMAGE)
|
||||
{
|
||||
sel->selbuf = malloc(buflen+1);
|
||||
memcpy(sel->selbuf, selbuf, buflen);
|
||||
}
|
||||
else
|
||||
sel->selbuf = strdup((char*)selbuf);
|
||||
}
|
||||
else
|
||||
sel->selbuf = NULL;
|
||||
|
||||
|
||||
return EINA_TRUE;
|
||||
#else
|
||||
|
@ -444,7 +459,8 @@ elm_cnp_selection_clear(Elm_Sel_Type selection, Evas_Object *widget)
|
|||
#ifdef HAVE_ELEMENTARY_X
|
||||
Cnp_Selection *sel;
|
||||
|
||||
if ((unsigned int)selection >= (unsigned int)ELM_SEL_MAX) return EINA_FALSE;
|
||||
if ((unsigned int)selection >= (unsigned int)ELM_SEL_TYPE_MAX)
|
||||
return EINA_FALSE;
|
||||
if (!_elm_cnp_init_count) _elm_cnp_init();
|
||||
|
||||
sel = selections + selection;
|
||||
|
@ -454,6 +470,9 @@ elm_cnp_selection_clear(Elm_Sel_Type selection, Evas_Object *widget)
|
|||
|
||||
sel->active = EINA_FALSE;
|
||||
sel->widget = NULL;
|
||||
if (sel->selbuf)
|
||||
free(sel->selbuf);
|
||||
sel->selbuf = NULL;
|
||||
sel->clear();
|
||||
|
||||
return EINA_TRUE;
|
||||
|
@ -464,13 +483,14 @@ elm_cnp_selection_clear(Elm_Sel_Type selection, Evas_Object *widget)
|
|||
|
||||
Eina_Bool
|
||||
elm_cnp_selection_get(Elm_Sel_Type selection, Elm_Sel_Format format,
|
||||
Evas_Object *widget, Elm_Drop_Cb datacb, void *udata)
|
||||
Evas_Object *widget, Elm_Drop_Cb datacb, void *udata)
|
||||
{
|
||||
#ifdef HAVE_ELEMENTARY_X
|
||||
Evas_Object *top;
|
||||
Cnp_Selection *sel;
|
||||
|
||||
if ((unsigned int)selection >= (unsigned int)ELM_SEL_MAX) return EINA_FALSE;
|
||||
if ((unsigned int)selection >= (unsigned int)ELM_SEL_TYPE_MAX)
|
||||
return EINA_FALSE;
|
||||
if (!_elm_cnp_init_count) _elm_cnp_init();
|
||||
|
||||
sel = selections + selection;
|
||||
|
@ -518,17 +538,19 @@ selection_clear(void *udata __UNUSED__, int type __UNUSED__, void *event)
|
|||
Cnp_Selection *sel;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ELM_SEL_MAX; i++)
|
||||
for (i = 0; i < ELM_SEL_TYPE_MAX; i++)
|
||||
{
|
||||
if (selections[i].ecore_sel == ev->selection) break;
|
||||
}
|
||||
cnp_debug("selection %d clear\n", i);
|
||||
/* Not me... Don't care */
|
||||
if (i == ELM_SEL_MAX) return ECORE_CALLBACK_PASS_ON;
|
||||
if (i == ELM_SEL_TYPE_MAX) return ECORE_CALLBACK_PASS_ON;
|
||||
|
||||
sel = selections + i;
|
||||
sel->active = 0;
|
||||
sel->active = EINA_FALSE;
|
||||
sel->widget = NULL;
|
||||
if (sel->selbuf)
|
||||
free(sel->selbuf);
|
||||
sel->selbuf = NULL;
|
||||
|
||||
return ECORE_CALLBACK_PASS_ON;
|
||||
|
@ -552,16 +574,16 @@ selection_notify(void *udata __UNUSED__, int type __UNUSED__, void *event)
|
|||
switch (ev->selection)
|
||||
{
|
||||
case ECORE_X_SELECTION_CLIPBOARD:
|
||||
sel = selections + ELM_SEL_CLIPBOARD;
|
||||
sel = selections + ELM_SEL_TYPE_CLIPBOARD;
|
||||
break;
|
||||
case ECORE_X_SELECTION_PRIMARY:
|
||||
sel = selections + ELM_SEL_PRIMARY;
|
||||
sel = selections + ELM_SEL_TYPE_PRIMARY;
|
||||
break;
|
||||
case ECORE_X_SELECTION_SECONDARY:
|
||||
sel = selections + ELM_SEL_SECONDARY;
|
||||
sel = selections + ELM_SEL_TYPE_SECONDARY;
|
||||
break;
|
||||
case ECORE_X_SELECTION_XDND:
|
||||
sel = selections + ELM_SEL_XDND;
|
||||
sel = selections + ELM_SEL_TYPE_XDND;
|
||||
break;
|
||||
default:
|
||||
return ECORE_CALLBACK_PASS_ON;
|
||||
|
@ -595,7 +617,8 @@ _get_selection_type(void *data, int size)
|
|||
Cnp_Selection *sel;
|
||||
sel = selections + *((int *)data);
|
||||
if (sel->active &&
|
||||
(sel->format >= ELM_SEL_TARGETS) && (sel->format < ELM_SEL_FORMAT_MAX))
|
||||
(sel->format >= ELM_SEL_FORMAT_TARGETS) &&
|
||||
(sel->format < ELM_SEL_FORMAT_MAX))
|
||||
return sel->format;
|
||||
}
|
||||
return ELM_SEL_FORMAT_NONE;
|
||||
|
@ -876,7 +899,7 @@ vcard_receive(Cnp_Selection *sel, Ecore_X_Event_Selection_Notify *notify)
|
|||
data = notify->data;
|
||||
cnp_debug("vcard receive\n");
|
||||
|
||||
if (sel == (selections + ELM_SEL_XDND))
|
||||
if (sel == (selections + ELM_SEL_TYPE_XDND))
|
||||
{
|
||||
Elm_Selection_Data ddata;
|
||||
|
||||
|
@ -1372,9 +1395,9 @@ found:
|
|||
}
|
||||
|
||||
cnp_debug("doing a request then\n");
|
||||
selections[ELM_SEL_XDND].requestwidget = dropable->obj;
|
||||
selections[ELM_SEL_XDND].requestformat = ELM_SEL_FORMAT_MARKUP;
|
||||
selections[ELM_SEL_XDND].active = EINA_TRUE;
|
||||
selections[ELM_SEL_TYPE_XDND].requestwidget = dropable->obj;
|
||||
selections[ELM_SEL_TYPE_XDND].requestformat = ELM_SEL_FORMAT_MARKUP;
|
||||
selections[ELM_SEL_TYPE_XDND].active = EINA_TRUE;
|
||||
|
||||
ecore_x_selection_xdnd_request(xwin, atoms[i].name);
|
||||
|
||||
|
@ -1545,7 +1568,7 @@ _drag_mouse_up(void *un __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *
|
|||
ecore_x_dnd_drop();
|
||||
if (dragdonecb)
|
||||
{
|
||||
dragdonecb(dragdonecb,selections[ELM_SEL_XDND].widget);
|
||||
dragdonecb(dragdonecb,selections[ELM_SEL_TYPE_XDND].widget);
|
||||
dragdonecb = NULL;
|
||||
}
|
||||
if (dragwin)
|
||||
|
@ -1569,7 +1592,7 @@ elm_drag_start(Evas_Object *obj, Elm_Sel_Format format, const char *data, void (
|
|||
{
|
||||
Ecore_X_Window xwin;
|
||||
Cnp_Selection *sel;
|
||||
Elm_Sel_Type xdnd = ELM_SEL_XDND;
|
||||
Elm_Sel_Type xdnd = ELM_SEL_TYPE_XDND;
|
||||
Ecore_Evas *ee;
|
||||
int x, y, x2, y2, x3, y3;
|
||||
Evas_Object *icon;
|
||||
|
@ -1582,7 +1605,7 @@ elm_drag_start(Evas_Object *obj, Elm_Sel_Format format, const char *data, void (
|
|||
cnp_debug("starting drag...\n");
|
||||
|
||||
ecore_x_dnd_type_set(xwin, "text/uri-list", 1);
|
||||
sel = selections + ELM_SEL_XDND;
|
||||
sel = selections + ELM_SEL_TYPE_XDND;
|
||||
sel->active = 1;
|
||||
sel->widget = obj;
|
||||
sel->format = format;
|
||||
|
|
|
@ -1126,7 +1126,7 @@ _paste(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
|||
formats = ELM_SEL_FORMAT_MARKUP;
|
||||
if (!wd->textonly)
|
||||
formats |= ELM_SEL_FORMAT_IMAGE;
|
||||
elm_cnp_selection_get(ELM_SEL_CLIPBOARD, formats, data, NULL, NULL);
|
||||
elm_cnp_selection_get(ELM_SEL_TYPE_CLIPBOARD, formats, data, NULL, NULL);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@ -1140,8 +1140,8 @@ _store_selection(Elm_Sel_Type seltype, Evas_Object *obj)
|
|||
if (!wd) return;
|
||||
sel = edje_object_part_text_selection_get(wd->ent, "elm.text");
|
||||
if ((!sel) || (!sel[0])) return; /* avoid deleting our own selection */
|
||||
elm_cnp_selection_set(seltype, obj, ELM_SEL_FORMAT_MARKUP, sel);
|
||||
if (seltype == ELM_SEL_CLIPBOARD)
|
||||
elm_cnp_selection_set(seltype, obj, ELM_SEL_FORMAT_MARKUP, sel, strlen(sel));
|
||||
if (seltype == ELM_SEL_TYPE_CLIPBOARD)
|
||||
eina_stringshare_replace(&wd->cut_sel, sel);
|
||||
}
|
||||
|
||||
|
@ -1157,7 +1157,7 @@ _cut(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
|||
edje_object_signal_emit(wd->ent, "elm,state,select,off", "elm");
|
||||
if (!_elm_config->desktop_entry)
|
||||
elm_widget_scroll_hold_pop(data);
|
||||
_store_selection(ELM_SEL_CLIPBOARD, data);
|
||||
_store_selection(ELM_SEL_TYPE_CLIPBOARD, data);
|
||||
edje_object_part_text_insert(wd->ent, "elm.text", "");
|
||||
edje_object_part_text_select_none(wd->ent, "elm.text");
|
||||
_sizing_eval(data);
|
||||
|
@ -1175,7 +1175,7 @@ _copy(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
|||
edje_object_signal_emit(wd->ent, "elm,state,select,off", "elm");
|
||||
elm_widget_scroll_hold_pop(data);
|
||||
}
|
||||
_store_selection(ELM_SEL_CLIPBOARD, data);
|
||||
_store_selection(ELM_SEL_TYPE_CLIPBOARD, data);
|
||||
// edje_object_part_text_select_none(wd->ent, "elm.text");
|
||||
}
|
||||
|
||||
|
@ -1531,7 +1531,8 @@ _signal_selection_start(void *data, Evas_Object *obj __UNUSED__, const char *emi
|
|||
|
||||
top = elm_widget_top_get(data);
|
||||
if ((top) && (elm_win_xwindow_get(top)))
|
||||
elm_cnp_selection_set(ELM_SEL_PRIMARY, data, ELM_SEL_FORMAT_MARKUP, txt);
|
||||
elm_cnp_selection_set(ELM_SEL_TYPE_PRIMARY, data,
|
||||
ELM_SEL_FORMAT_MARKUP, txt, strlen(txt));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -1559,7 +1560,7 @@ _signal_selection_changed(void *data, Evas_Object *obj __UNUSED__, const char *e
|
|||
if (!wd) return;
|
||||
wd->have_selection = EINA_TRUE;
|
||||
evas_object_smart_callback_call(data, SIG_SELECTION_CHANGED, NULL);
|
||||
_store_selection(ELM_SEL_PRIMARY, data);
|
||||
_store_selection(ELM_SEL_TYPE_PRIMARY, data);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1579,8 +1580,9 @@ _signal_selection_cleared(void *data, Evas_Object *obj __UNUSED__, const char *e
|
|||
|
||||
top = elm_widget_top_get(data);
|
||||
if ((top) && (elm_win_xwindow_get(top)))
|
||||
elm_cnp_selection_set(ELM_SEL_PRIMARY, data, ELM_SEL_FORMAT_MARKUP,
|
||||
wd->cut_sel);
|
||||
elm_cnp_selection_set(ELM_SEL_TYPE_PRIMARY, data,
|
||||
ELM_SEL_FORMAT_MARKUP, wd->cut_sel,
|
||||
strlen(wd->cut_sel));
|
||||
#endif
|
||||
eina_stringshare_del(wd->cut_sel);
|
||||
wd->cut_sel = NULL;
|
||||
|
@ -1592,7 +1594,7 @@ _signal_selection_cleared(void *data, Evas_Object *obj __UNUSED__, const char *e
|
|||
|
||||
top = elm_widget_top_get(data);
|
||||
if ((top) && (elm_win_xwindow_get(top)))
|
||||
elm_cnp_selection_clear(ELM_SEL_PRIMARY, data);
|
||||
elm_cnp_selection_clear(ELM_SEL_TYPE_PRIMARY, data);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@ -1602,7 +1604,8 @@ static void
|
|||
_signal_entry_paste_request(void *data, Evas_Object *obj __UNUSED__, const char *emission, const char *source __UNUSED__)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
Elm_Sel_Type type = (emission[sizeof("ntry,paste,request,")] == '1') ? ELM_SEL_PRIMARY : ELM_SEL_CLIPBOARD;
|
||||
Elm_Sel_Type type = (emission[sizeof("ntry,paste,request,")] == '1') ?
|
||||
ELM_SEL_TYPE_PRIMARY : ELM_SEL_TYPE_CLIPBOARD;
|
||||
if (!wd) return;
|
||||
evas_object_smart_callback_call(data, SIG_SELECTION_PASTE, NULL);
|
||||
if (wd->sel_notify_handler)
|
||||
|
|
|
@ -189,7 +189,8 @@ _longpress(void *objv)
|
|||
/* FIXME: Deal with relative paths */
|
||||
buf = malloc(strlen(file) + strlen("file://") + 1);
|
||||
sprintf(buf, "%s%s","file://",file);
|
||||
elm_drag_start(objv, ELM_SEL_FORMAT_IMAGE, buf, _drag_done_cb, NULL);
|
||||
elm_drag_start(objv, ELM_SEL_FORMAT_IMAGE,
|
||||
buf, _drag_done_cb, NULL);
|
||||
free(buf);
|
||||
}
|
||||
elm_object_scroll_freeze_push(objv);
|
||||
|
|
Loading…
Reference in New Issue