|
@ -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; |
|
|