From 870c91ca1074de705bd036f8851eb5b5a6263244 Mon Sep 17 00:00:00 2001 From: Sebastian Dransfeld Date: Thu, 4 Oct 2012 23:19:05 +0000 Subject: [PATCH] elementary: Add COMPOUND_TEXT handler Needed for vim cnp SVN revision: 77486 --- legacy/elementary/ChangeLog | 5 +++++ legacy/elementary/NEWS | 1 + legacy/elementary/configure.ac | 4 ++-- legacy/elementary/src/lib/elm_cnp.c | 17 ++++++++++++++--- 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/legacy/elementary/ChangeLog b/legacy/elementary/ChangeLog index c07b0ac888..1fbbf4bf47 100644 --- a/legacy/elementary/ChangeLog +++ b/legacy/elementary/ChangeLog @@ -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 diff --git a/legacy/elementary/NEWS b/legacy/elementary/NEWS index c461062334..f690b15dcb 100644 --- a/legacy/elementary/NEWS +++ b/legacy/elementary/NEWS @@ -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: diff --git a/legacy/elementary/configure.ac b/legacy/elementary/configure.ac index 08de00e063..a4d6cc6d4f 100644 --- a/legacy/elementary/configure.ac +++ b/legacy/elementary/configure.ac @@ -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"] ) diff --git a/legacy/elementary/src/lib/elm_cnp.c b/legacy/elementary/src/lib/elm_cnp.c index 4fc9488d40..de1fbe6c6c 100644 --- a/legacy/elementary/src/lib/elm_cnp.c +++ b/legacy/elementary/src/lib/elm_cnp.c @@ -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) {