dwm

my fork of dwm
Index Commits Files Refs README LICENSE
commit f0a4845e7dec3a4c7316311fcf1108148bb29730
parent 82ec7a7ed4f3ba376faadfc2aca783b24618575f
Author: Anselm R Garbe <anselm@garbe.us>
Date:   Sat, 19 Sep 2009 11:52:16 +0100

added TODO to updategeom in order to implement a decent version of it soon
Diffstat:
Mdwm.c | 34++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+), 0 deletions(-)
diff --git a/dwm.c b/dwm.c
@@ -1699,6 +1699,40 @@ updategeom(void) {
     Client *c;
     Monitor *newmons = NULL, *m = NULL, *tm;
 
+    /* TODO:
+     * This function needs to be seriously re-designed:
+     *
+     * #ifdef XINERAMA
+     * 1. Determine number of already existing monitors n
+     * 2. Determine number of monitors Xinerama reports nn
+     * 3. if(n <= nn) {
+     *       if(n < nn) {
+     *          append nn-n monitors to current struct
+     *          flag dirty
+     *       }
+     *       for(i = 0; i < nn; i++) {
+     *           if(oldgeom != newgeom) {
+     *               apply newgeom;
+     *               flag dirty;
+     *           }
+     *       }
+     *    }
+     *    else {
+     *       detach all clients
+     *       destroy current monitor struct
+     *       create new monitor struct 
+     *       attach all clients to first monitor
+     *       flag dirty;
+     *    }
+     *    return dirty flag to caller
+     *        if dirty is seen by caller:
+     *           re-arrange bars/pixmaps
+     *           arrange()
+     * #else
+     *    don't share between XINERAMA and non-XINERAMA handling if it gets
+     *    too ugly
+     * #endif
+     */
 #ifdef XINERAMA
     XineramaScreenInfo *info = NULL;
     Bool *flags = NULL;