Hello!

 I'm attaching a patch.
 When I try to begin a drag, from let's say Firefox, as soon as the cursor exits
its border, E segfaults. Appearently, one drag event type on two is NULL, and
so, when strcmping it to the only one recognised for the moment
("text/uri-list"), crash ! The whole ev->types is also twice as large as it
should be (2*num_types).
 In fact, when retrieving these informations from X, Ecore thinks the returned
informations are uint32_t (32b), but in fact, X (at least X.org 6.8.2) uses and
returns longs which are 64b on amd64. The same issue could happen for 16b
informations, as X.org uses short (fortunately they are 16b :))
 Hope this helps.

 Cheers!

-- 

                                          ilLogict


Website: http://illogict.online.fr
E-Mail:  [EMAIL PROTECTED]
AIM/NIM: illogict
Yahoo:   illogict
MSN:     [EMAIL PROTECTED]
ICQ:     #74274856

Infos:   E17 rocks!
         Le nettoyage de ligne, quelle chose efficace ! (1900->4700 @60dB)
Index: ecore_x_window_prop.c
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_x/ecore_x_window_prop.c,v
retrieving revision 1.72
diff -u -r1.72 ecore_x_window_prop.c
--- ecore_x_window_prop.c	25 Jun 2005 00:15:19 -0000	1.72
+++ ecore_x_window_prop.c	16 Aug 2005 06:28:29 -0000
@@ -162,11 +162,11 @@
 	 break;
       case 16:
 	 for (i = 0; i < num_ret; i++)
-	   ((uint16_t *) *data)[i] = ((uint16_t *) prop_ret)[i];
+	   ((uint16_t *) *data)[i] = ((short *) prop_ret)[i];
 	 break;
       case 32:
 	 for (i = 0; i < num_ret; i++)
-	   ((uint32_t *) *data)[i] = ((uint32_t *) prop_ret)[i];
+	   ((uint32_t *) *data)[i] = ((long *) prop_ret)[i];
 	 break;
    }
 

Reply via email to