|
@@ -1699,6 +1699,40 @@ updategeom(void) {
|
|
|
Client *c;
|
|
Client *c;
|
|
|
Monitor *newmons = NULL, *m = NULL, *tm;
|
|
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
|
|
#ifdef XINERAMA
|
|
|
XineramaScreenInfo *info = NULL;
|
|
XineramaScreenInfo *info = NULL;
|
|
|
Bool *flags = NULL;
|
|
Bool *flags = NULL;
|