The following diffs adds minimalistic support for X RandR.

By selecting using StructureNotifyMask on the root window, we can get
ConfigureNotify events whenever the size of the screen changes.

This then performs a restart on blackbox.

While this causes screen flicker, at least it works.

Better strategies would be to relayout on the fly, with updating
the current screen size appropratiately.

But it is a start.
                                - Jim Gettys

Index: src/Screen.cc
===================================================================
RCS file: /cvs/blackbox/src/Screen.cc,v
retrieving revision 1.2
diff -u -r1.2 Screen.cc
--- src/Screen.cc       2001/03/17 08:14:30     1.2
+++ src/Screen.cc       2001/06/13 21:43:29
@@ -186,7 +186,7 @@
 
   event_mask = ColormapChangeMask | EnterWindowMask | PropertyChangeMask |
               SubstructureRedirectMask | KeyPressMask | KeyReleaseMask |
-              ButtonPressMask | ButtonReleaseMask;
+              ButtonPressMask | ButtonReleaseMask | StructureNotifyMask;
 
   XErrorHandler old = XSetErrorHandler((XErrorHandler) anotherWMRunning);
   XSelectInput(getBaseDisplay()->getXDisplay(), getRootWindow(), event_mask);
Index: src/blackbox.cc
===================================================================
RCS file: /cvs/blackbox/src/blackbox.cc,v
retrieving revision 1.2
diff -u -r1.2 blackbox.cc
--- src/blackbox.cc     2001/01/25 07:54:20     1.2
+++ src/blackbox.cc     2001/06/13 21:43:29
@@ -271,6 +271,10 @@
   }
 
   switch (e->type) {
+  case ConfigureNotify:
+    {
+      blackbox->restart();
+    }
   case ButtonPress:
     {
       last_time = e->xbutton.time;

--
Jim Gettys
Technology and Corporate Development
Compaq Computer Corporation
[EMAIL PROTECTED]

Reply via email to