Fix EWMH non-compliance for NET::{OnScreenDisplay,CriticalNotification}

Authored by catherinez on Feb 13 2020, 9:28 AM.



The EWMH specification for _NET_WM_WINDOW_TYPE states:

The Client SHOULD specify window types in order of preference
(the first being most preferable) but MUST include at least one of
the basic window type atoms from the list below. This is to allow
for extension of the list of types whilst providing default behavior
for Window Managers that do not recognize the extensions.

KDE currently does not do this for its extended window types due to
what appears to be a copy-paste error 5 years ago, and so is not
EWMH compliant. This also causes focus stealing issues with i3 that
lack a workaround:

Diff Detail

R278 KWindowSystem
Lint Skipped
Unit Tests Skipped
catherinez created this revision.Feb 13 2020, 9:28 AM
Restricted Application added a project: Frameworks. · View Herald TranscriptFeb 13 2020, 9:28 AM
Restricted Application added a subscriber: kde-frameworks-devel. · View Herald Transcript
catherinez requested review of this revision.Feb 13 2020, 9:28 AM

Note that there are what I assume 3 more instances of a similar copy-paste error, for DropdownMenu, PopupMenu, and Notification. I didn't touch them because KDE is currently EWMH compliant for these window types, and because I lack the context to understand the consequences of such a change. (For example, if I fix Notification then it'll start triggering i3 rules for utility windows, which seems potentially problematic.)

broulik added a subscriber: broulik.EditedFeb 13 2020, 9:32 AM

Nice find!
It appears the DropdownMenu, PopupMenu, and Notification type also incorrectly use a len = 1? Ok, question answered :)

davidedmundson accepted this revision.Feb 13 2020, 9:50 AM
davidedmundson added a subscriber: davidedmundson.

Do you have commit access?

This revision is now accepted and ready to land.Feb 13 2020, 9:50 AM

Could someone commit this, please?

Sorry for the delay, I can land this for you. However I'll need your full name and email address so we can populate the git authorship information with that, as Phabricator stripped all of that out because this patch was not submitted with arc (silly Phabricator...). Can you provide that information so I can land the patch?

Catherine Zotov <>

This revision was automatically updated to reflect the committed changes.

Thanks for the patch!