From: Arnout E. <no...@bz...> - 2011-08-06 12:04:54
|
Hi, In looking at https://sourceforge.net/tracker/?func=detail&aid=3349390&group_id=314802&atid=1324528 , I decided I'm confused about the Notion/X11 data model, and wanted to run this by you guys. As far as I understand, X defines a 'Display' which corresponds to an X server. A Display may have multiple X Screen's, when supporting multiple monitors. However, when using 'multihead', nowadays it is common for the X server to have only 1 'virtual' Screen spanning all physical monitors. Each Screen has 1 'root window' (of type Window). Over to the Notion side, we have the WRootWin which is a WScreen which is an MPlex. There is 1 WRootWin per X Screen. This window, being an MPlex, may contain multiple regions, only one of which is visible at a time (http://notion.sourceforge.net/notionnotes/node2.html#SECTION00021000000000000000). Typically, it will have one instance of WGroupWS per workspace on that monitor. In the current implementation of mod_xinerama, mod_xinerama creates a new WScreen for each monitor. When using Xinerama/RandR, there's only one X Screen and thus only one WRootWin. Instead of WGroupWS's, mod_xinerama puts these new sub-WScreen's under the WRootWin, and puts the WGroupWS's under those sub-WScreen's. That seems to make sense to me, except that WRootWin is a WMPlex, so this would mean only one of the sub-WScreen's should be visible at the time. Of course in this context that's not the case. Question 1) is my above interpretation correct? If my above interpretation is correct, then notion/mod_xinerama are not implemented correctly. I see 2 obvious ways forward: a) Modify mod_xinerama to not put the WScreen's for the physicial screens directly under the WRootWin. Instead, we could introduce a WGroupS (group of screens), put the WGroupS under the WRootWin and put the WScreen's under that WGroupS b) Continue to put (one or multiple) WScreen's under the WRootWin. In this case WRootWin should no longer be a WMPlex - and thus no longer a WScreen. Instead, WRootWin would become a subclass of WGroup of WScreen's, and also in the non-Xinerama case contain 1 WScreen. A WRootWin would continue to correspond to an X Screen, and a WScreen would correspond to a physical monitor. Any comments? As far as I can see now, option 'b' seems like a larger change, but on the other hand the end-result seems more elegant and easier to maintain. Kind regards, Arnout |