raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=8d4a2a70cf6b93546cac46f61b11ad6e705d34ef

commit 8d4a2a70cf6b93546cac46f61b11ad6e705d34ef
Author: Carsten Haitzler <ras...@rasterman.com>
Date:   Sun Apr 3 21:11:59 2022 +0100

    elm cnp - add uri list so you can sensibly do dnd for a filemanager
---
 src/bin/elementary/test_cnp.c | 1 +
 src/lib/elementary/elm_cnp.h  | 3 ++-
 src/lib/elementary/elm_dnd.c  | 5 ++++-
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/bin/elementary/test_cnp.c b/src/bin/elementary/test_cnp.c
index a9d0b7f8fa..574c72bcba 100644
--- a/src/bin/elementary/test_cnp.c
+++ b/src/bin/elementary/test_cnp.c
@@ -31,6 +31,7 @@ _selection(void *data, Evas_Object *obj EINA_UNUSED, 
Elm_Selection_Data *ev)
         case ELM_SEL_FORMAT_IMAGE: fmt = "IMAGE"; break;
         case ELM_SEL_FORMAT_VCARD: fmt = "VCARD"; break;
         case ELM_SEL_FORMAT_HTML: fmt = "HTML"; break;
+        case ELM_SEL_FORMAT_URILIST: fmt = "URILIST"; break;
      }
    fprintf(stderr, "got selection type '%s': length %zu\n", fmt, ev->len);
 
diff --git a/src/lib/elementary/elm_cnp.h b/src/lib/elementary/elm_cnp.h
index 06346e40a5..6af7870364 100644
--- a/src/lib/elementary/elm_cnp.h
+++ b/src/lib/elementary/elm_cnp.h
@@ -80,7 +80,8 @@ typedef enum
                                        * inline images */
   ELM_SEL_FORMAT_IMAGE = 4, /**< Images */
   ELM_SEL_FORMAT_VCARD = 8, /**< Vcards */
-  ELM_SEL_FORMAT_HTML = 16 /**< Raw HTML-like data (eg. webkit) */
+  ELM_SEL_FORMAT_HTML = 16, /**< Raw HTML-like data (eg. webkit) */
+  ELM_SEL_FORMAT_URILIST = 32 /**< URI List for file DND @since 1.27 */
 } Elm_Sel_Format;
 
 /**
diff --git a/src/lib/elementary/elm_dnd.c b/src/lib/elementary/elm_dnd.c
index d0c309a84e..ad18fef161 100644
--- a/src/lib/elementary/elm_dnd.c
+++ b/src/lib/elementary/elm_dnd.c
@@ -132,11 +132,14 @@ _format_to_mime_array(Elm_Sel_Format format)
 {
    Eina_Array *ret = eina_array_new(10);
 
+   if (format & ELM_SEL_FORMAT_URILIST)
+     eina_array_push(ret, "text/uri-list");
    if (format & ELM_SEL_FORMAT_TEXT)
      {
         eina_array_push(ret, "text/plain");
         eina_array_push(ret, "text/plain;charset=utf-8");
-        eina_array_push(ret, "text/uri-list");
+        if (!(format & ELM_SEL_FORMAT_URILIST))
+          eina_array_push(ret, "text/uri-list");
      }
    if (format & ELM_SEL_FORMAT_MARKUP)
      eina_array_push(ret, "application/x-elementary-markup");

-- 


Reply via email to