[Xmonad] darcs patch: make workspace tag not need to be a Num.
sjanssen at cse.unl.edu
Thu Jun 14 10:50:04 EDT 2007
On Wed, 13 Jun 2007 22:40:14 -0600
Jason Creighton <jcreigh at gmail.com> wrote:
> On Wed, Jun 13, 2007 at 06:12:00PM -0700, Stefan O'Rear wrote:
> > On Wed, Jun 13, 2007 at 06:08:01PM -0700, David Roundy wrote:
> > > On Wed, Jun 13, 2007 at 06:02:53PM -0700, Stefan O'Rear wrote:
> > > > > > It definitely has nothing to do with Xinerama. Probably it
> > > > > > has a lot to do with the fact that we used to hide windows
> > > > > > by moving them offscreen; this needs to be re-evaluated.
> > > > > > As such I'm CC-ing the deciders.
> > > > >
> > > > > Ah, then an easy solution would seem to be to move windows
> > > > > offscreen by a fixed distance (chosen perhaps to be larger
> > > > > than any reasonable viewable area, or perhaps chosen at
> > > > > runtime to be larger than the actual screen area).
> > > > >
> > > > > But why is it that we can't just unmap the windows? (possibly
> > > > > displaying my ignorance...)
> > > >
> > > > Indeed. :) I used past tense, because unmapping is what we do
> > > > now.
> > >
> > > Ah, yes, I see that you did use the past tense... so presumably
> > > we no longer would need to store and restore those positions?
> > Right.
> Hmm. Consider: Suppose you have some windows on screen 1, and you
> hide that workspace. Later, you make that workspace visible on a
> different scren. Now to position the floating windows correctly, you
> have to check if they are on a different screen, and if they are,
> translate their coordinates to the current screen. Remember that
> screens can be different sizes.
> Moving between workspaces would be fairly easy: You could just move
> them there in the StackSet, and then it would get moved on the screen
> on "refresh".
> You would need to always be able to figure out which screen a window
> was on: What would you do if the upper-left corner of the window got
> moved off the screen? Just not allow it? You could end up with some
> weird states if you weren't careful. (Not that the current code is
> any better: You can "lose" windows by dragging them across screens
> because xmonad still thinks they're on the same workspace, so they
> get drawn under the tiled windows of the other workspace)
> It seems workable, but I have doubts as to whether it's actually
> Jason Creighton
And attempting to track windows by absolute position becomes even more
unworkable in the presence of randr and display hotplugging. I'm
convinced that keeping geometry info inside xmonad is the right
More information about the Xmonad