
On 8/7/07, David Roundy
On Tue, Aug 07, 2007 at 04:57:30PM -0700, Michael Vanier wrote:
Other comments:
-- I find the way that Screen wraps a workspace somewhat icky, though I can't think of a better alternative. It feels like it compromises the symmetry of the StackSet data structure. Maybe I'm just being too picky here.
Agreed, it's very ugly. More symmetric options don't seem to be very popular, thought. It seems to me that the "right" way to do things is to use hierarchical Stacks of one sort or another, and handle the arranging of workspaces on screens in a manner symmetrical to the handling of windows on workspaces (and in a Layout like Combo, or when there are float windows forming a sub-workspace, the handling of sub-workspaces within workspaces).
It seems best to me to have a single data structure which is used to describe "a set of things, one of which has focus." Currently, we've got two: StackSet describes a set of Screens, one of which has focus, and Stack describes a set of Windows, one of which has focus. StackSet also describes a set of Workspaces, one of which has focus implicitly, via the mapping between Screens and Workspaces.
Yes, I've recently been thinking about this as well. I'd love to see it done - it would be quite elegant. Rather than representing the actual screens, the members of the screen level stackset would be workspaces, much like the way windows are members of workspaces. The main problem with this is that there can be more workspaces than there are screens, so the code switching between screens would have to wrap before the actual end of the stackset. Things like this should probably be figured out soon, so that it doesn't break as many contrib modules. Maybe the release after the next? (I think there's one coming soon). --Michael Sloan