
Hi, there was a discussion tonight (it was 5 AM here ;), about some issues with Tabbed: I'm answering here, since the story is a bit long. Some applications do not comply with the window's size xmonad gave them and do not display correctly. Here's an example provided by sorear: http://members.cox.net/stefanor/1191121852.png As you see there is an urxvt over firefox, which causes not only that visible problem, but focus problems too, since when the pointer enters the unhidden window that window would receives the focus. Now, there are two problem: - should tabbed hide unfocused windows? - should xmonad implement in Main that mouse focus stuff? I think the answer is no to both questions.
From XMonad.hs: -- 'doLayout': given a Rectangle and a Stack, layout the stack elements -- inside the given Rectangle. If an element is not given a Rectangle -- by 'doLayout', then it is not shown on screen. Windows are restacked -- according to the order they are returned by 'doLayout'.
Tabbed returns a list with just the focused window and the relative rectangle. I think this is the correct behavior for a layout. But tabbed has enough information to unmap those windows and map the back when a Hide message is send to tabbed. So, please let me know if you think this second behavior is better. The mouse focus stuff: I tried (and still trying) to implement a layout modifier that will take care of the problem, so that we can remove the CrossingEvent handler (actually I get rid of it in my working xmonad instance) from Main and make it a configuration option. Still the problem is a bit tricky and did find a solution that works with every possible layout. Andrea

On Sun, Sep 30, 2007 at 10:23:11AM +0200, Andrea Rossato wrote:
Here's an example provided by sorear: http://members.cox.net/stefanor/1191121852.png
As you see there is an urxvt over firefox, which causes not only that visible problem, but focus problems too, since when the pointer enters the unhidden window that window would receives the focus. [...] Tabbed returns a list with just the focused window and the relative rectangle. I think this is the correct behavior for a layout.
But tabbed has enough information to unmap those windows
That made me think about some kind of bug in Operations.windows, so I went to check, and there are none. 'windows' is correctly hiding unfocused windows, here. So the answer to sorear's question: [05:11] <sorear> arossato: Does the New Tabbed hide windows? is yes. And Tabbed has no need to unmap those windows. So, sorear's picture seems even more puzzling to me. Ideas? Andrea

On Sep 30, 2007, at 5:04 , Andrea Rossato wrote:
So the answer to sorear's question: [05:11] <sorear> arossato: Does the New Tabbed hide windows? is yes. And Tabbed has no need to unmap those windows.
So, sorear's picture seems even more puzzling to me.
No, it just means he needs to darcs pull and rebuild (which is what he was really asking, as I understood it). I will note that I've also seen (and occasionally been annoyed by) the behavior he reported, with a version as pulled from darcs just after 0.3 was released; in particular, I'm not yet running xmonad-class. -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH

On Sun, Sep 30, 2007 at 09:16:48AM -0400, Brandon S. Allbery KF8NH wrote:
On Sep 30, 2007, at 5:04 , Andrea Rossato wrote:
So the answer to sorear's question: [05:11] <sorear> arossato: Does the New Tabbed hide windows?
No, it just means he needs to darcs pull and rebuild (which is what he was really asking, as I understood it).
Ops, I totally misunderstood. I thought you were talking about the new tabbed. Sorry. Andrea

On Sun, Sep 30, 2007 at 10:23:11AM +0200, Andrea Rossato wrote:
Hi,
there was a discussion tonight (it was 5 AM here ;), about some issues with Tabbed: I'm answering here, since the story is a bit long.
Some applications do not comply with the window's size xmonad gave them and do not display correctly.
Here's an example provided by sorear: http://members.cox.net/stefanor/1191121852.png
As you see there is an urxvt over firefox, which causes not only that visible problem, but focus problems too, since when the pointer enters the unhidden window that window would receives the focus.
Now, there are two problem: - should tabbed hide unfocused windows? - should xmonad implement in Main that mouse focus stuff?
I think the answer is no to both questions.
From XMonad.hs: -- 'doLayout': given a Rectangle and a Stack, layout the stack elements -- inside the given Rectangle. If an element is not given a Rectangle -- by 'doLayout', then it is not shown on screen. Windows are restacked -- according to the order they are returned by 'doLayout'.
Tabbed returns a list with just the focused window and the relative rectangle. I think this is the correct behavior for a layout.
But tabbed has enough information to unmap those windows and map the back when a Hide message is send to tabbed. So, please let me know if you think this second behavior is better.
The mouse focus stuff: I tried (and still trying) to implement a layout modifier that will take care of the problem, so that we can remove the CrossingEvent handler (actually I get rid of it in my working xmonad instance) from Main and make it a configuration option. Still the problem is a bit tricky and did find a solution that works with every possible layout.
Argh. I seem to have mis-communicated myself horrendously. Urxvt *is* obeying the size xmonad gives it, because I'm using LayoutHints. (old) Tabbed is displaying all windows, but relying on the focused window's position in the Z-order to prevent others from being visible. This is very fragile, and with LayoutHints it is possible to see other windows; this is a major annoyance because of the interaction with mouse focus. (moving to lower right makes firefox pop to the top and I have to mod-j) The behavior I would like to see does not involve any explicit unmapping, but rather simply omitting them from the list of windows that should be visible. (Don't you just love functional style? :) ) 'full' already exhibits the behavior I want. David Roundy did not want the behavior in (old) Tabbed, for reasons I did not understand and did not like. My question was whether New Tabbed did what I wanted. Yesterday on IRC I threatened a fork. With the benefit of sleep I have a *much* better idea. If New Tabbed doesn't do what I want after my next upgrade cycle, I'll add a boolean configuration option. No big deal. Stefan
participants (3)
-
Andrea Rossato
-
Brandon S. Allbery KF8NH
-
Stefan O'Rear