about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAnselm R Garbe <anselm@garbe.us>2009-09-19 11:52:16 +0100
committerAnselm R Garbe <anselm@garbe.us>2009-09-19 11:52:16 +0100
commitf0a4845e7dec3a4c7316311fcf1108148bb29730 (patch)
treeb055a57a06759c7d959b0a7a17e8c23e18397bab
parent82ec7a7ed4f3ba376faadfc2aca783b24618575f (diff)
downloaddwm-f0a4845e7dec3a4c7316311fcf1108148bb29730.tar.gz
added TODO to updategeom in order to implement a decent version of it soon
-rw-r--r--dwm.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/dwm.c b/dwm.c
index 2b4d6b0..7363396 100644
--- 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;