令人困惑的_NET_SUPPORTING_WM_CHECK
我正在努力使我的窗口管理器符合 ICCCM 规范。 我完全理解 _NET_SUPPORTING_WM_CHECK 原子的原因 - 这可以确保每当窗口管理器不再运行时不会保留任何无效信息。
我不明白的是,为什么除了 _NET_WM_NAME 和 _NET_SUPPORTING_WM_CHECK 本身之外,支持窗口上没有像 _NET_NUMBER_OF_DESKTOPS 这样的其他原子。
窗口管理器应该设置并覆盖数据,但如果新的窗口管理器不兼容,这可能会产生误导。
I am trying to make my window manager conform to the ICCCM specifications. I fully understand the reason for the _NET_SUPPORTING_WM_CHECK atom - this ensures that no invalid information stays whenever the window manager isn't running anymore.
What I don't understand is why are no other atoms like _NET_NUMBER_OF_DESKTOPS expected on the supporting window besides _NET_WM_NAME and _NET_SUPPORTING_WM_CHECK itself.
Window managers are supposed to set and overwrite the data but this can be misleading in the case the new window manager isn't compliant.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
那么你所说的原子不是 ICCCM。
它们属于较新的 EWMH 集,
所以基本上是这样的。
首先我们有 ICCCM。
它们是
然后我们有了更新的 EWMH
Freedesktop 希望使 EWMH 尽可能广泛(GNOME 和 KDE 除外)
这就是为什么大多数原子是“应该”而不是“必须”的原因。 他们给小窗口管理器一个机会来声明合规。
Well the atoms that you are talking about are not the ICCCM.
They belong to the newer set of EWMH
So basically it goes like this.
First we had the ICCCM.
They are
Then we had EWMH that are
Freedesktop wanted to make the EWMH as broad as possible (apart from GNOME and KDE)
and that is why most of the atoms are SHOULD and not MUST. They are giving a chance to small window manager to claim compliance.
我认为这个想法是你必须检查某个属性是否受支持,并且仅在受支持时才从根窗口使用它。
如果我没记错的话,在许多其他属性已经存在之后,稍后添加 _NET_SUPPORTING_WM_CHECK 窗口。
I think the idea is you have to check whether a property is supported, and only use it from the root window if it's supported.
The _NET_SUPPORTING_WM_CHECK window was added later after a lot of the other properties already existed, if I remember right.