added TODO to updategeom in order to implement a decent version of it soon
authorAnselm R Garbe <anselm@garbe.us>
Sat, 19 Sep 2009 11:52:16 +0100
changeset 1493 20bd305fa7aa
parent 1492 62a601261c8b
child 1494 e00cb20da182
added TODO to updategeom in order to implement a decent version of it soon
dwm.c
--- a/dwm.c	Fri Sep 18 21:18:00 2009 +0100
+++ b/dwm.c	Sat Sep 19 11:52:16 2009 +0100
@@ -1699,6 +1699,40 @@
 	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;