Index: Ecore_X.h
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_x/Ecore_X.h,v
retrieving revision 1.165
diff -u -r1.165 Ecore_X.h
--- Ecore_X.h	17 May 2006 05:35:56 -0000	1.165
+++ Ecore_X.h	14 Jul 2006 03:25:08 -0000
@@ -539,6 +539,10 @@
    Ecore_X_Selection          selection;
    char                      *target;
    void                      *data;
+};
+
+struct _Ecore_X_Selection_Data
+{
    enum {
 	ECORE_X_SELECTION_CONTENT_NONE,
 	ECORE_X_SELECTION_CONTENT_TEXT,
@@ -546,10 +550,6 @@
 	ECORE_X_SELECTION_CONTENT_TARGETS,
 	ECORE_X_SELECTION_CONTENT_CUSTOM
    } content;
-};
-
-struct _Ecore_X_Selection_Data
-{
    unsigned char    *data;
    int               length;
 
Index: ecore_x_selection.c
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_x/ecore_x_selection.c,v
retrieving revision 1.28
diff -u -r1.28 ecore_x_selection.c
--- ecore_x_selection.c	6 Jan 2006 20:22:09 -0000	1.28
+++ ecore_x_selection.c	14 Jul 2006 03:25:10 -0000
@@ -679,6 +679,9 @@
    free(tmp);
    free(data);
 
+   ECORE_X_SELECTION_DATA(sel)->content = ECORE_X_SELECTION_CONTENT_FILES;
+   ECORE_X_SELECTION_DATA(sel)->length = sel->num_files;
+
    return ECORE_X_SELECTION_DATA(sel);
 }
 
@@ -715,6 +718,8 @@
      }
 
    sel->text = (char *)data;
+   ECORE_X_SELECTION_DATA(sel)->length = size;
+   ECORE_X_SELECTION_DATA(sel)->content = ECORE_X_SELECTION_CONTENT_TEXT;
    ECORE_X_SELECTION_DATA(sel)->free = _ecore_x_selection_data_text_free;
    return sel;
 }
@@ -747,6 +752,8 @@
    free(data);
 
    ECORE_X_SELECTION_DATA(sel)->free = _ecore_x_selection_data_targets_free;
+   ECORE_X_SELECTION_DATA(sel)->content = ECORE_X_SELECTION_CONTENT_TARGETS;
+   ECORE_X_SELECTION_DATA(sel)->length = size;
    return sel;
 }
 
