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