[xmonad] Re: Issue 313 in xmonad: Merge contrib's isFullscreen and doFullFloat to core

Wirt Wolff wirtwolff at gmail.com
Tue Nov 3 13:15:26 EST 2009

Excerpts from codesite-noreply's message of Fri Oct 30 20:01:29 -0600 2009:
> Comment #4 on issue 313 by alexey at feldgendler.ru: Merge contrib's  
> isFullscreen and doFullFloat to core
> http://code.google.com/p/xmonad/issues/detail?id=313
> The isFullscreen implementation in xmonad-contrib didn't work for me at  
> least with the two applications I tried (MPlayer and Opera). Then I look
> at the source code of ion3 WM, which used to handle both of them
> correctly, and saw what it does
> <http://ion3.sourcearchive.com/documentation/20060107/fullscreen_8c-source.html>  
> (see clientwin_check_fullscreen_request). I implemented the same in a
> custom query for XMonad, and it worked.
> Here is my query:
> myIsFullscreen = do
>    w <- ask
>    fs <- isFullscreen
>    if fs then return fs
>          else liftX $ do
>                     p <- getProp32s "_MOTIF_WM_HINTS" w
>                     case p of
>                       Just (flags:_:decorations:_) -> return ((flags .&. 2)  
> /= 0 &&
> decorations == 0)
>                       Nothing -> return False

This adds nice ability to toggle mplayer to/from fullscreen and *tiled mode,
so it isn't necessary to float it. Still looking for effects on other apps.
So far all I've found is that it doesn't seem to have bad side-effects with
apps used so far, but unfortunately VLC and totem still don't get what they
are looking for to fullscreen. i.e. this still doesn't solve it for those
media players.

Also probably change the Nothing case to

                        _ -> return False

to catch any possible differences in _MOTIF_WM_HINT list, just in case.



More information about the xmonad mailing list