Tomas Janousek fde7f4f8b0 X.H.EwmhDesktops: Ignore _NET_WM_STATE_FULLSCREEN from unmanaged windows
This prevents an unnecessary refresh.

That refresh would normally be harmless but it does reset the input
focus, which happens to upset some non-conforming clients such as
https://github.com/flameshot-org/flameshot. Flameshot is an interactive
screenshot tool that creates an override-redirect fullscreen window to
let the user select a rectangle to capture and then allows drawing and
adding text and so on, but it unfortunately doesn't follow ICCCM
recommendations:

> If it is necessary for a client to receive keystrokes on an
> override-redirect window, either the client must grab the keyboard, or
> the client must have another top-level window that is not
> override-redirect and that has selected the Locally Active or Globally
> Active focus model.

Instead, it just takes input focus and hopes for the best. And it also
sends an entirely useless _NET_WM_STATE_FULLSCREEN request, which would
trigger a refresh and take that focus away.

This commit works around that by not handling that useless
_NET_WM_STATE_FULLSCREEN for unmanaged windows and thus preventing that
refresh. It's just a workaround, however: if a legitimate refresh is
necessary at any point, the focus _will_ be taken away.

Fixes: https://github.com/xmonad/xmonad-contrib/issues/550
Fixes: https://github.com/flameshot-org/flameshot/issues/773
2021-05-28 15:13:09 +01:00
2021-05-21 17:37:09 +02:00
2019-09-27 16:43:04 -04:00
2020-12-11 17:46:03 +05:30
2007-11-01 20:20:41 +00:00
2021-05-24 17:49:03 +01:00

xmonad-contrib: Third Party Extensions to the xmonad Window Manager

Tests Open Source Helpers

You need the ghc compiler and xmonad window manager installed in order to use these extensions.

For installation and configuration instructions, please see the xmonad website, the documents included with the xmonad source distribution, and the online haddock documentation.

Getting or Updating XMonadContrib

(To use git xmonad-contrib you must also use the git version of xmonad.)

Contributing

Haskell code contributed to this repo should live under the appropriate subdivision of the XMonad namespace (currently includes Actions, Config, Hooks, Layout, Prompt, and Util). For example, to use the Grid layout, one would import:

XMonad.Layout.Grid

For further details, see the documentation for the XMonad.Doc.Developing module, XMonad's CONTRIBUTING.md and the xmonad website.

License

Code submitted to the contrib repo is licensed under the same license as xmonad itself, with copyright held by the authors.

Description
Languages
Haskell 99.6%
C 0.2%
Shell 0.1%