I wrote:
Hi,

this is a minimal patch to fix the most visible issues on 64 bits architectures (problems caused by the weird XGetProperty() API).

Here's an updated patch, which also fixes WMPrefs startup.

--
                                        Matthieu
? log
Index: patches/patch-WINGs_wwindow_c
===================================================================
RCS file: patches/patch-WINGs_wwindow_c
diff -N patches/patch-WINGs_wwindow_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-WINGs_wwindow_c       5 Nov 2005 14:52:23 -0000
@@ -0,0 +1,29 @@
+$OpenBSD$
+--- WINGs/wwindow.c~   Sun Oct 24 04:58:20 2004
++++ WINGs/wwindow.c    Sat Nov  5 15:38:16 2005
+@@ -254,14 +254,14 @@
+ setMiniwindow(WMWindow *win, RImage *image)
+ {
+     WMScreen *scr= win->view->screen;
+-    CARD32 *data;
++    long *data;
+     int x, y;
+     int o;
+ 
+     if (!image)
+       return;
+ 
+-    data = wmalloc((image->width * image->height + 2) * sizeof(CARD32));
++    data = wmalloc((image->width * image->height + 2) * sizeof(long));
+ 
+     o= 0;
+     data[o++] = image->width;
+@@ -269,7 +269,7 @@
+ 
+     for (y= 0; y < image->height; y++) {
+         for (x= 0; x < image->width; x++) {
+-            CARD32 pixel;
++            long pixel;
+             int offs= (x+y*image->width);
+             
+             if (image->format == RRGBFormat)
Index: patches/patch-src_wmspec_c
===================================================================
RCS file: patches/patch-src_wmspec_c
diff -N patches/patch-src_wmspec_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_wmspec_c  5 Nov 2005 14:52:23 -0000
@@ -0,0 +1,77 @@
+$OpenBSD$
+--- src/wmspec.c~      Sun May 15 18:41:09 2005
++++ src/wmspec.c       Sat Nov  5 11:35:59 2005
+@@ -322,14 +322,14 @@
+ void
+ wNETWMUpdateDesktop(WScreen *scr)
+ {
+-    CARD32 *views, sizes[2];
++    long *views, sizes[2];
+     int count, i;
+ 
+     if (scr->workspace_count==0)
+         return;
+ 
+     count = scr->workspace_count * 2;
+-    views = wmalloc(sizeof(CARD32) * count);
++    views = wmalloc(sizeof(long) * count);
+     /*memset(views, 0, sizeof(CARD32) * count);*/
+ 
+ #ifdef VIRTUAL_DESKTOP
+@@ -487,7 +487,7 @@
+ static void
+ updateShowDesktop(WScreen * scr, Bool show)
+ {
+-    CARD32 foo;
++    long foo;
+ 
+     foo = (show == True);
+     XChangeProperty(dpy, scr->root_win, net_showing_desktop, XA_CARDINAL, 32,
+@@ -660,7 +660,7 @@
+ void
+ wNETWMUpdateWorkarea(WScreen *scr, WArea usableArea)
+ {
+-    CARD32 *area;
++    long *area;
+     int count, i;
+ 
+     /* XXX: not Xinerama compatible,
+@@ -670,9 +670,9 @@
+         return;
+ 
+     count = scr->workspace_count * 4;
+-    area = wmalloc(sizeof(CARD32) * count);
++    area = wmalloc(sizeof(long) * count);
+     for (i=0; i<scr->workspace_count; i++) {
+-        area[4*i + 0] = usableArea.x1;
++      area[4*i + 0] = usableArea.x1;
+         area[4*i + 1] = usableArea.y1;
+         area[4*i + 2] = usableArea.x2 - usableArea.x1;
+         area[4*i + 3] = usableArea.y2 - usableArea.y1;
+@@ -793,7 +793,7 @@
+ static void
+ updateWorkspaceCount(WScreen *scr) /* changeable */
+ {
+-    CARD32 count;
++    long count;
+ 
+     count = scr->workspace_count;
+ 
+@@ -805,7 +805,7 @@
+ static void
+ updateCurrentWorkspace(WScreen *scr) /* changeable */
+ {
+-    CARD32 count;
++    long count;
+ 
+     count = scr->current_workspace;
+ 
+@@ -852,7 +852,7 @@
+ static void
+ updateWorkspaceHint(WWindow *wwin, Bool fake, Bool del)
+ {
+-    CARD32 l;
++    long l;
+ 
+     if (del) {
+         XDeleteProperty(dpy, wwin->client_win, net_wm_desktop);

Reply via email to