Hi,

please consider to apply the attached patches into mainline which we've
applied in Debian since quite some time.

Regards,
Daniel

-- 
Address:        Daniel Baumann, Burgunderstrasse 3, CH-4562 Biberist
Email:          [EMAIL PROTECTED]
Internet:       http://people.panthera-systems.net/~daniel-baumann/
#!/bin/sh /usr/share/dpatch/dpatch-run
## 02-fontset-fix.dpatch by Gonzalo Tornaria <[EMAIL PROTECTED]
##
## DP: Fixes fontset problem with UTF (Closes: #394781).

@DPATCH@

diff -Naur wmii-3.1.orig/liblitz/font.c wmii-3.1/liblitz/font.c
--- wmii-3.1.orig/liblitz/font.c        2006-06-17 11:44:30.000000000 +0000
+++ wmii-3.1/liblitz/font.c     2006-10-23 16:13:39.000000000 +0000
@@ -37,10 +37,12 @@
                while(n--)
                        fprintf(stderr, "liblitz: missing fontset: %s\n", 
missing[n]);
                XFreeStringList(missing);
+               /*
                if(font->set) {
                        XFreeFontSet(dpy, font->set);
                        font->set = nil;
                }
+               */
        }
        if(font->set) {
                XFontSetExtents *font_extents;
#!/bin/sh /usr/share/dpatch/dpatch-run
## 03-xrandr.dpatch by Evan Deaubl <[EMAIL PROTECTED]>
##
## DP: Adds support for xrandr (Closes: #398900).

@DPATCH@

diff -Naur wmii-3.1.orig/cmd/wm/event.c wmii-3.1/cmd/wm/event.c
--- wmii-3.1.orig/cmd/wm/event.c        2006-06-17 11:44:30.000000000 +0000
+++ wmii-3.1/cmd/wm/event.c     2006-11-16 15:58:40.000000000 +0000
@@ -10,6 +10,8 @@
 
 #include "wm.h"
 
+#include <X11/extensions/Xrandr.h>
+
 /* local functions */
 static void handle_buttonpress(XEvent * e);
 static void handle_buttonrelease(XEvent * e);
@@ -23,6 +25,7 @@
 static void handle_maprequest(XEvent * e);
 static void handle_propertynotify(XEvent * e);
 static void handle_unmapnotify(XEvent * e);
+static void handle_rrscreenchangenotify(XEvent * e);
 
 void (*handler[LASTEvent]) (XEvent *);
 
@@ -53,7 +56,9 @@
        XEvent ev;
        while(XPending(dpy)) { /* main event loop */
                XNextEvent(dpy, &ev);
-               if(handler[ev.type])
+               if (xrandr_supported && ev.type == xrandr_event_base + 0)
+                       handle_rrscreenchangenotify (&ev);
+               else if(handler[ev.type])
                        (handler[ev.type]) (&ev); /* call handler */
        }
 }
@@ -199,6 +204,25 @@
 }
 
 static void
+handle_rrscreenchangenotify(XEvent *e)
+{
+       XRRScreenChangeNotifyEvent *ev = (XRRScreenChangeNotifyEvent *)e;
+       if(ev->window == root) {
+               XRRUpdateConfiguration(e);
+               if (ev->rotation == RR_Rotate_90 || ev->rotation == 
RR_Rotate_270) {
+                       rect.width = ev->height;
+                       rect.height = ev->width;
+               }
+               else {
+                       rect.width = ev->width;
+                       rect.height = ev->height;
+               }
+               arrange_views();
+               resize_bar();
+       }
+}
+
+static void
 handle_destroynotify(XEvent *e)
 {
        Client *c;
diff -Naur wmii-3.1.orig/cmd/wm/view.c wmii-3.1/cmd/wm/view.c
--- wmii-3.1.orig/cmd/wm/view.c 2006-06-17 11:44:30.000000000 +0000
+++ wmii-3.1/cmd/wm/view.c      2006-11-16 15:58:40.000000000 +0000
@@ -385,3 +385,13 @@
        else
                update_view_bars();
 }
+
+void
+arrange_views()
+{
+       unsigned int i;
+
+       for(i = 0; i < view.size; i++) {
+               arrange_view(view.data[i]);
+       }
+}
diff -Naur wmii-3.1.orig/cmd/wm/wm.c wmii-3.1/cmd/wm/wm.c
--- wmii-3.1.orig/cmd/wm/wm.c   2006-06-17 11:44:30.000000000 +0000
+++ wmii-3.1/cmd/wm/wm.c        2006-11-16 15:58:40.000000000 +0000
@@ -260,6 +260,11 @@
        XSelectInput(dpy, root, SubstructureRedirectMask | EnterWindowMask);
        XSync(dpy, False);
 
+       int dummy = 0;
+       xrandr_supported = XRRQueryExtension(dpy,
+                                            &xrandr_event_base, &dummy);
+       XRRSelectInput(dpy, root, 1);
+
        if(other_wm_running) {
                fprintf(stderr,
                                "wmiiwm: another window manager is already 
running\n");
diff -Naur wmii-3.1.orig/cmd/wm/wm.h wmii-3.1/cmd/wm/wm.h
--- wmii-3.1.orig/cmd/wm/wm.h   2006-06-17 11:44:30.000000000 +0000
+++ wmii-3.1/cmd/wm/wm.h        2006-11-16 15:58:40.000000000 +0000
@@ -197,6 +197,8 @@
 unsigned int valid_mask;
 unsigned int num_lock_mask;
 unsigned int sel_screen;
+int xrandr_event_base;
+int xrandr_supported;
 
 /* area.c */
 Area *create_area(View *t);
diff -Naur wmii-3.1.orig/config.mk wmii-3.1/config.mk
--- wmii-3.1.orig/config.mk     2006-06-17 11:44:29.000000000 +0000
+++ wmii-3.1/config.mk  2006-11-16 15:58:40.000000000 +0000
@@ -11,7 +11,7 @@
 VERSION = 3.1
 
 # includes and libs
-LIBS = -L${PREFIX}/lib -L/usr/lib -lc -L${X11LIB} -lX11
+LIBS = -L${PREFIX}/lib -L/usr/lib -lc -L${X11LIB} -lX11 -lXrandr
 
 # Linux/BSD
 CFLAGS = -O3 -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \

Reply via email to