
Hi folks, I've seen the following odd behaviour with xine on my dual-screen setup. I open xine on the left screen, then press "f" to get it into fullscreen mode and voila, it extends partially into the right screen covering the windows on that screen by a few pixels: 2*borderwidth to be precise. Here's what I think happens based on some digging through the xmonad code that I did: 1. xine goes into fullscreen and requests the full screen size as its geometry. 2. Since my manage hook floats xine, the xmonad floating window code kicks in, which honours the size request of the window but adds twice the border width to its size to accommodate the border decoration. 3. If I activate a layout modifier that removes the border on fullscreen float windows, then the border is removed but the geometry stays at the increased size. I didn't actually verify that this is what happens, but it's the most plausible explanation given the following observations I made: 1. the floatLocation function in XMonad.Operations adds 2*borderwidth to the size of the window as stated above. 2. the problem disappears with a border width of 0. 3. xine extends into the right screen by 2*borderwidth no matter whether I remove borders from fullscreen float windows or not. 4. Changing the layout so that the screens are arranged vertically and placing xine onto the top screen, it extends by 2*borderwidth into the bottom screen. 5. the problem does not appear in any other environment I tried (gnome, kde, awesome), presumably because they automatically remove the border from fullscreen windows without adjusting their geometry. Maybe xine even sets a window hint that says it doesn't want a border, and those window managers honour this request while xmonad does not? So my question for the list is what can be done to fix this behaviour. In my opinion it boils down to the question of whether adding the borderwidth to the window geometry as X.O.floatLocation does is the right thing to do. I think it is for windows that are not fullscreen, but for windows that are fullscreen it is more likely than not that it isn't. Would it make sense for X.O.floatLocation to distinguish between windows that take up the full size of a screen and ones that do not and treat them differently? - Norbert

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 2/7/11 22:10 , Norbert Zeh wrote:
So my question for the list is what can be done to fix this behaviour. In my opinion it boils down to the question of whether adding the borderwidth to the window geometry as X.O.floatLocation does is the right thing to do. I think it is for windows that are not fullscreen, but for windows that are fullscreen it is more likely than not that it isn't.
That's only a part of it; there's also a not-easily-fixed bug in the border width calculation that is most likely to show up with full-screen floating windows (the border width is added in *before* the window is scaled to fit its parcel). (Hm, which I've mentioned on the list but not filed, so I'll do that now. http://code.google.com/p/xmonad/issues/detail?id=431) - -- brandon s. allbery [linux,solaris,freebsd,perl] allbery.b@gmail.com system administrator [openafs,heimdal,too many hats] kf8nh -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk1QveMACgkQIn7hlCsL25XlsQCgqFsn88eSkMvOQTu8RkfH33m/ SuYAn3F9OrCpshRuBLWUr90paZlAguiz =H8lj -----END PGP SIGNATURE-----
participants (2)
-
Brandon S Allbery KF8NH
-
Norbert Zeh