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