[wmii] Patches from Debian

From: Daniel Baumann <daniel_AT_debian.org>
Date: Fri, 17 Nov 2006 20:22:26 +0100

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:          daniel.baumann_AT_panthera-systems.net
Internet:       http://people.panthera-systems.net/~daniel-baumann/

#!/bin/sh /usr/share/dpatch/dpatch-run
## 02-fontset-fix.dpatch by Gonzalo Tornaria <tornaria_AT_math.utexas.ed
##
## 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 <evan_AT_warpedview.com>
##
## 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} \
Received on Fri Nov 17 2006 - 20:22:15 UTC

This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 16:16:55 UTC