| Summary: | Certain Xwayland applications do not have a window title | ||
|---|---|---|---|
| Product: | [Plasma] kwin | Reporter: | Fabian Vogt <fabian> |
| Component: | core | Assignee: | KWin default assignee <kwin-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | Flags: | mgraesslin:
Wayland+
mgraesslin: X11- mgraesslin: ReviewRequest+ |
| Priority: | NOR | ||
| Version First Reported In: | git master | ||
| Target Milestone: | --- | ||
| Platform: | openSUSE | ||
| OS: | Linux | ||
| URL: | https://phabricator.kde.org/D7046 | ||
| Latest Commit: | https://commits.kde.org/kwin/c87230c3a5feb6b31938189bd3dd69eaee490def | Version Fixed/Implemented In: | |
| Sentry Crash Report: | |||
|
Description
Fabian Vogt
2017-07-27 09:07:14 UTC
WM_NAME is not used for window title. (In reply to Martin Flöser from comment #1) > WM_NAME is not used for window title. glxgears has only two properties that have the value "glxgears", which is shown as a window title in a pure X11 session: > WM_ICON_NAME(STRING) = "glxgears" > WM_NAME(STRING) = "glxgears" So I'm not sure where else the title/caption would come from. Relevant code is:
QString Client::readName() const
{
if (info->name() && info->name()[0] != '\0')
return QString::fromUtf8(info->name()).simplified();
else
return KWindowSystem::readNameProperty(window(), XCB_ATOM_WM_NAME).simplified();
}
I assume KWindowSystem::readNameProperty does not work on Wayland
And readNameProperty is problematic. It's still XLib based and thus we cannot use it from within Wayland where we only have xcb. Patch at https://phabricator.kde.org/D7046 Git commit c87230c3a5feb6b31938189bd3dd69eaee490def by Martin Flöser. Committed on 21/08/2017 at 15:58. Pushed by graesslin into branch 'master'. Use xcb-icccm to read the name property Summary: The KWindowSystem call which we used doesn't work on Wayland as it's only implemented in the xcb variant and cannot be made available for Wayland in an easy way as it is still XLib based. This change turns the optional XCB-ICCCM dependency in a required one and thus can use the functionality provided by said library to implement what KWindowSystem provided. Test Plan: New test case which failed with old code Reviewers: #kwin, #plasma Subscribers: plasma-devel, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D7046 M +1 -1 CMakeLists.txt M +23 -0 autotests/integration/x11_client_test.cpp M +22 -3 client.cpp https://commits.kde.org/kwin/c87230c3a5feb6b31938189bd3dd69eaee490def |