Honour panelTakesFocus for other plasmashell types

Summary:
The semantics of a window taking focus on user interaction apply to more roles. See D25851.

Given it is used by `KWindowSystem::forceActivateWindow` in kwayland-integration, it makes sense to pass focus to the window once it gets this property set.

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D25968
master
David Edmundson 2019-12-20 14:22:42 +01:00
parent 41b02f2356
commit ed5768181e
1 changed files with 5 additions and 0 deletions

View File

@ -1409,6 +1409,11 @@ void XdgShellClient::installPlasmaShellSurface(PlasmaShellSurfaceInterface *surf
workspace()->updateClientArea();
}
};
connect(surface, &PlasmaShellSurfaceInterface::panelTakesFocusChanged , this, [this, surface]() {
if (surface->panelTakesFocus()) {
workspace()->activateClient(this);
}
});
connect(surface, &PlasmaShellSurfaceInterface::positionChanged, this, updatePosition);
connect(surface, &PlasmaShellSurfaceInterface::roleChanged, this, updateRole);
connect(surface, &PlasmaShellSurfaceInterface::panelBehaviorChanged, this,