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;
}