aboutsummaryrefslogtreecommitdiff
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
dwm-f0a4845e7dec3a4c7316311fcf1108148bb29730.tar.bz2
dwm-f0a4845e7dec3a4c7316311fcf1108148bb29730.zip
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;