added TODO to updategeom in order to implement a decent version of it soon f0a4845e
Anselm R Garbe · 2009-09-19 11:52 1 file(s) · +34 −0
dwm.c +34 −0
1699 1699
	Client *c;
1700 1700
	Monitor *newmons = NULL, *m = NULL, *tm;
1701 1701
1702 +
	/* TODO:
1703 +
	 * This function needs to be seriously re-designed:
1704 +
	 *
1705 +
	 * #ifdef XINERAMA
1706 +
	 * 1. Determine number of already existing monitors n
1707 +
	 * 2. Determine number of monitors Xinerama reports nn
1708 +
	 * 3. if(n <= nn) {
1709 +
	 *       if(n < nn) {
1710 +
	 *          append nn-n monitors to current struct
1711 +
	 *          flag dirty
1712 +
	 *       }
1713 +
	 *       for(i = 0; i < nn; i++) {
1714 +
	 *           if(oldgeom != newgeom) {
1715 +
	 *               apply newgeom;
1716 +
	 *               flag dirty;
1717 +
	 *           }
1718 +
	 *       }
1719 +
	 *    }
1720 +
	 *    else {
1721 +
	 *       detach all clients
1722 +
	 *       destroy current monitor struct
1723 +
	 *       create new monitor struct 
1724 +
	 *       attach all clients to first monitor
1725 +
	 *       flag dirty;
1726 +
	 *    }
1727 +
	 *    return dirty flag to caller
1728 +
	 *        if dirty is seen by caller:
1729 +
	 *           re-arrange bars/pixmaps
1730 +
	 *           arrange()
1731 +
	 * #else
1732 +
	 *    don't share between XINERAMA and non-XINERAMA handling if it gets
1733 +
	 *    too ugly
1734 +
	 * #endif
1735 +
	 */
1702 1736
#ifdef XINERAMA
1703 1737
	XineramaScreenInfo *info = NULL;
1704 1738
	Bool *flags = NULL;