Sawfish
Advertisement
Browse all patches

Author[]

Thadeu Lima de Souza Cascardo <cascardo@minaslivre.org>

Synopsis[]

This is a patch for Debian bug #406559, and possibly #403100, too. It seems these are ultimately caused by Xlib "helpfully" converting 32 bit messages from the server to the client's native long type, which is bad for sawfish since rep does distinguish these.

A longer description can be found in the patch's author's message in [1].

Patch[]

--- sawfish-1.3.1.old/src/events.c      2008-01-01 01:46:12.000000000 -0200
+++ sawfish-1.3.1/src/events.c  2008-01-01 01:45:22.000000000 -0200
@@ -21,6 +21,7 @@
 
 #include "sawmill.h"
 #include <limits.h>
+#include <stdint.h>
 #include <string.h>
 #include <time.h>
 #include <X11/extensions/shape.h>
@@ -641,7 +642,10 @@
     case 32:
        data = Fmake_vector (rep_MAKE_INT(5), Qnil);
        for (i = 0; i < 5; i++)
-           rep_VECTI(data,i) = rep_make_long_uint (ev->xclient.data.l[i]);
+       {
+           unsigned long l = (uint32_t) ev->xclient.data.l[i];
+           rep_VECTI(data,i) = rep_make_long_uint (l);
+       }
        break;
 
     default:

Community's reasons for inclusion or rejection[]

  • Yes vote: yes. - apparently it was reported on debian Bug Tracking System to work. (See the quoted URLs in the patch's description) Janek Kozicki 15:59, 14 January 2008 (UTC)
  • Yes vote: yes. - Unfortunately tried only on IA32, at least doesn't seem to cause regressions. Aav 08:16, 16 January 2008 (UTC)
  • Yes vote: yes. accepted Janek Kozicki 00:30, 17 January 2008 (UTC)
Advertisement