commit 85a1fb0807322862dc5ed53df80c4497b41b95d6 Author: David Edmundson Date: Fri Dec 13 20:48:28 2019 +0100 Patch for Kai diff --git a/xdgshellclient.cpp b/xdgshellclient.cpp index 1b523c3ec..7ed44acab 100644 --- a/xdgshellclient.cpp +++ b/xdgshellclient.cpp @@ -1401,6 +1401,13 @@ void XdgShellClient::installPlasmaShellSurface(PlasmaShellSurfaceInterface *surf workspace()->updateClientArea(); } }; + //DAVE do we need this line? if so, do we want this line vs a specific request focus? + connect(surface, &PlasmaShellSurfaceInterface::panelTakesFocusChanged , this, [this, surface]() { + qDebug() << " I WANT FOCUS DAMNIT!!!"; + if (surface->panelTakesFocus()) { + workspace()->activateClient(this); + } + }); connect(surface, &PlasmaShellSurfaceInterface::positionChanged, this, updatePosition); connect(surface, &PlasmaShellSurfaceInterface::roleChanged, this, updateRole); connect(surface, &PlasmaShellSurfaceInterface::panelBehaviorChanged, this, @@ -1911,7 +1918,9 @@ void XdgShellClient::showOnScreenEdge() bool XdgShellClient::dockWantsInput() const { if (m_plasmaShellSurface) { - if (m_plasmaShellSurface->role() == PlasmaShellSurfaceInterface::Role::Panel) { + if (m_plasmaShellSurface->role() == PlasmaShellSurfaceInterface::Role::Panel || + m_plasmaShellSurface->role() == PlasmaShellSurfaceInterface::Role::Notification || + m_plasmaShellSurface->role() == PlasmaShellSurfaceInterface::Role::CriticalNotification) { return m_plasmaShellSurface->panelTakesFocus(); } }