elementary: Add COMPOUND_TEXT handler

Needed for vim cnp

SVN revision: 77486
This commit is contained in:
Sebastian Dransfeld 2012-10-04 23:19:05 +00:00
parent 9444642ee7
commit 870c91ca10
4 changed files with 22 additions and 5 deletions

View File

@ -564,3 +564,8 @@
2012-10-04 Cedric Bail
* Add a color picker to elm_colorselector.
2012-10-04 Sebastian Dransfeld
* Use ecore_x_selection_converter_text to convert text data so we can
support COMPOUND_TEXT

View File

@ -23,6 +23,7 @@ Improvements:
* Improve elm map module loading/searching efficiency.
* Diskselector handles dyanmic show/hide of icons now like buttons.
* Plug widget handles image object deletion
* Handle COMPOUND_TEXT cnp
Fixes:

View File

@ -292,11 +292,11 @@ AC_ARG_ENABLE([ecore-x],
if test "x$want_elementary_x" != "xno"; then
PKG_CHECK_MODULES([ELEMENTARY_X],
[ecore-x >= 1.6.99],
[ecore-x >= 1.7.99],
[
AC_DEFINE(HAVE_ELEMENTARY_X, 1, [X11 support for Elementary])
have_elementary_x="yes"
requirement_elm="ecore-x >= 1.6.99 ${requirement_elm}"
requirement_elm="ecore-x >= 1.7.99 ${requirement_elm}"
],
[have_elementary_x="no"]
)

View File

@ -30,6 +30,7 @@ enum
// CNP_ATOM_text_html,
CNP_ATOM_UTF8STRING,
CNP_ATOM_STRING,
CNP_ATOM_COMPOUND_TEXT,
CNP_ATOM_TEXT,
CNP_ATOM_text_plain_utf8,
CNP_ATOM_text_plain,
@ -339,6 +340,14 @@ static X11_Cnp_Atom _x11_atoms[CNP_N_ATOMS] = {
_x11_notify_handler_text,
0
},
[CNP_ATOM_COMPOUND_TEXT] = {
"COMPOUND_TEXT",
ELM_SEL_FORMAT_TEXT | ELM_SEL_FORMAT_MARKUP | ELM_SEL_FORMAT_HTML,
_x11_text_converter,
NULL,
NULL,
0
},
[CNP_ATOM_TEXT] = {
"TEXT",
ELM_SEL_FORMAT_TEXT | ELM_SEL_FORMAT_MARKUP | ELM_SEL_FORMAT_HTML,
@ -868,7 +877,7 @@ _x11_notify_handler_html(X11_Cnp_Selection *sel, Ecore_X_Event_Selection_Notify
*/
static Eina_Bool
_x11_text_converter(char *target __UNUSED__, void *data, int size, void **data_ret, int *size_ret, Ecore_X_Atom *ttype __UNUSED__, int *typesize __UNUSED__)
_x11_text_converter(char *target, void *data, int size, void **data_ret, int *size_ret, Ecore_X_Atom *ttype, int *typesize)
{
X11_Cnp_Selection *sel;
@ -896,8 +905,10 @@ _x11_text_converter(char *target __UNUSED__, void *data, int size, void **data_r
}
else if (sel->format & ELM_SEL_FORMAT_TEXT)
{
*data_ret = strdup(sel->selbuf);
*size_ret = strlen(sel->selbuf);
ecore_x_selection_converter_text(target, sel->selbuf,
strlen(sel->selbuf),
data_ret, size_ret,
ttype, typesize);
}
else if (sel->format & ELM_SEL_FORMAT_IMAGE)
{