From 9912d84f746c1dd3c33befc0fb469025a99fad10 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Tue, 29 Sep 2015 20:25:04 +0200 Subject: [PATCH] supports kwayland skipsTaskbar read the skipTaskbar property from plasmashellsurface and set it accordingly in the corresponding PlasmaWindow for the model REVIEW:125454 --- abstract_client.cpp | 6 ++++++ shell_client.cpp | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/abstract_client.cpp b/abstract_client.cpp index bb4f14dac0..0fc0f088d7 100644 --- a/abstract_client.cpp +++ b/abstract_client.cpp @@ -635,6 +635,12 @@ void AbstractClient::setupWindowManagementInterface() w->setFullscreenable(isFullScreenable()); w->setThemedIconName(icon().name().isEmpty() ? QStringLiteral("xorg") : icon().name()); w->setAppId(QString::fromUtf8(resourceName())); + w->setSkipTaskbar(skipTaskbar()); + connect(this, &AbstractClient::skipTaskbarChanged, w, + [w, this] { + w->setSkipTaskbar(skipTaskbar()); + } + ); connect(this, &AbstractClient::captionChanged, w, [w, this] { w->setTitle(caption()); }); connect(this, &AbstractClient::desktopChanged, w, [w, this] { diff --git a/shell_client.cpp b/shell_client.cpp index 766a3ef628..bfc2122829 100644 --- a/shell_client.cpp +++ b/shell_client.cpp @@ -562,7 +562,7 @@ void ShellClient::clientFullScreenChanged(bool fullScreen) StackingUpdatesBlocker blocker(workspace()); workspace()->updateClientLayer(this); // active fullscreens get different layer - if (fullScreen) { + if (fullScreen) {qWarning()<<"AAAAAAAAAA"<clientArea(FullScreenArea, this)); workspace()->raiseClient(this); @@ -657,6 +657,11 @@ void ShellClient::installPlasmaShellSurface(PlasmaShellSurfaceInterface *surface ); updatePosition(); updateRole(); + + setSkipTaskbar(surface->skipTaskbar()); + connect(surface, &PlasmaShellSurfaceInterface::skipTaskbarChanged, this, [this] { + setSkipTaskbar(m_plasmaShellSurface->skipTaskbar()); + }); } bool ShellClient::isInitialPositionSet() const @@ -664,6 +669,9 @@ bool ShellClient::isInitialPositionSet() const if (m_plasmaShellSurface) { return m_plasmaShellSurface->isPositionSet(); } + if (isFullScreen()) { + return true; + } return false; }