EWMH specification doesn't say windows of type "dock" cannot be moved, but docks & WMs assume this

Carsten Haitzler raster at rasterman.com
Mon Sep 7 19:34:10 UTC 2020


On Mon, 07 Sep 2020 19:13:25 +0000 ornx <ornx at protonmail.com> said:

It's not required that they do not move. For example - a WM may choose to
slide/animate the docks/panels off the edges of the screen when a window goes
fullscreen (as an effect) to hid these docks/panels. this would necessitate
these windows being moved in this case. There is no requirement they do not
move.

Disallowing a user from just doing a regular move of the window "lick and drag
for example) is kind of implied by the window type though.

> I am implementing EWMH support for a window manager. While reading the spec, I
> noticed that it doesn't mention that programs with
> _NET_WM_WINDOW_TYPE = _NET_WM_WINDOW_TYPE_DOCK cannot be moved, however, other
> window managers and the dock programs themselves assume this. I could not find
> any information in the EWMH or ICCC specification that specifies this
> behavior, or that this behavior should be used for any other atoms with other
> dock-like functionality (e.g., setting struts). I tested this with the dock
> program "plank" and the window manager "awesome".
> 
> My questions then are:
> * Is this an example of behavior that is part of a "de facto" standard for
>   interactions between window managers and clients, that EWMH/ICCC are only
>   subsets of? Or, have I simply misread the spec, and this behavior actually
> is specified in it somewhere?
> * Is there a better resource for understanding how to correctly implement a
>   window manager that supports these extensions than simply reading the source
>   code of other window managers?

Thinking about the logical thing to do is important, but specs often leave gaps
to allow for varied behaviour - that's incredibly common. Even with the specs,
there are apps and WM's that ignore them or abuse them or violate them too so
there is a lot of grey area to play in on both sides. Basically you learn by
doing and experience... and sometimes might look at what another WM does or
read its code as well.

> Many thanks,
> - Ornxka
> _______________________________________________
> xorg at lists.x.org: X.Org support
> Archives: http://lists.freedesktop.org/archives/xorg
> Info: https://lists.x.org/mailman/listinfo/xorg
> Your subscription address: %(user_address)s
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
Carsten Haitzler - raster at rasterman.com



More information about the xorg mailing list