elm_cnp: support html type for copy&paste 46/102746/1
authorTaehyub Kim <taehyub.kim@samsung.com>
Tue, 6 Dec 2016 11:09:50 +0000 (20:09 +0900)
committerTaehyub Kim <taehyub.kim@samsung.com>
Tue, 6 Dec 2016 11:09:50 +0000 (20:09 +0900)
Change-Id: I2547671a5f8cdc41bd68f396714333759448ee99

src/lib/elm_cnp.c

index 08b215a..621a39c 100644 (file)
@@ -35,8 +35,8 @@ enum
    CNP_ATOM_image_tga,
    CNP_ATOM_image_ppm,
    CNP_ATOM_XELM,
-//   CNP_ATOM_text_html_utf8,
-//   CNP_ATOM_text_html,
+   CNP_ATOM_text_html_utf8,
+   CNP_ATOM_text_html,
    CNP_ATOM_UTF8STRING,
    CNP_ATOM_STRING,
    CNP_ATOM_COMPOUND_TEXT,
@@ -266,6 +266,7 @@ static Eina_Bool _wl_data_preparer_uri(Wl_Cnp_Selection *sel, Elm_Selection_Data
 static Eina_Bool _wl_data_preparer_vcard(Wl_Cnp_Selection *sel, Elm_Selection_Data *ddata, Ecore_Wl_Event_Selection_Data_Ready *ev, Tmp_Info **tmp_info);
 static Eina_Bool _wl_data_preparer_image(Wl_Cnp_Selection *sel, Elm_Selection_Data *ddata, Ecore_Wl_Event_Selection_Data_Ready *ev, Tmp_Info **tmp_info);
 static Eina_Bool _wl_data_preparer_text(Wl_Cnp_Selection *sel, Elm_Selection_Data *ddata, Ecore_Wl_Event_Selection_Data_Ready *ev, Tmp_Info **tmp_info);
+static Eina_Bool _wl_data_preparer_handler_html(Wl_Cnp_Selection *sel, Elm_Selection_Data *ddata, Ecore_Wl_Event_Selection_Data_Ready *ev, Tmp_Info **tmp_info);
 #endif
 
 struct _Cnp_Atom
@@ -611,7 +612,6 @@ static Cnp_Atom _atoms[CNP_N_ATOMS] = {
         .wl_data_preparer = _wl_data_preparer_image,
 #endif
    },
-/*
    ARRAYINIT(CNP_ATOM_text_html_utf8) {
       .name = "text/html;charset=utf-8",
       .formats = ELM_SEL_FORMAT_HTML,
@@ -637,7 +637,6 @@ static Cnp_Atom _atoms[CNP_N_ATOMS] = {
         .wl_data_preparer = _wl_data_preparer_handler_html,
 #endif
    },
- */
    ARRAYINIT(CNP_ATOM_UTF8STRING) {
         .name = "UTF8_STRING",
         .formats = ELM_SEL_FORMAT_TEXT | ELM_SEL_FORMAT_MARKUP | ELM_SEL_FORMAT_HTML,
@@ -2864,6 +2863,19 @@ _wl_data_preparer_text(Wl_Cnp_Selection *sel, Elm_Selection_Data *ddata, Ecore_W
    return EINA_TRUE;
 }
 
+static Eina_Bool
+_wl_data_preparer_handler_html(Wl_Cnp_Selection *sel, Elm_Selection_Data *ddata, Ecore_Wl_Event_Selection_Data_Ready *ev, Tmp_Info **tmp_info EINA_UNUSED)
+{
+   cnp_debug("In\n");
+
+   ddata->format = ELM_SEL_FORMAT_HTML;
+   ddata->data = eina_memdup((unsigned char *)ev->data, ev->len, EINA_TRUE);
+   ddata->len = ev->len;
+   ddata->action = sel->action;
+
+   return EINA_TRUE;
+}
+
 static void
 _wl_sel_obj_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
 {