diff --git a/xdgshellclient.cpp b/xdgshellclient.cpp
index 0ea08021c..98e14c48a 100644
--- a/xdgshellclient.cpp
+++ b/xdgshellclient.cpp
@@ -1527,6 +1527,10 @@ void XdgToplevelClient::updateShowOnScreenEdge()
ScreenEdges::self()->reserve(this, ElectricNone);
return;
}
+
+ disconnect(this, &XdgToplevelClient::windowShown,
+ this, &XdgToplevelClient::updateShowOnScreenEdge);
+
const PlasmaShellSurfaceInterface::PanelBehavior panelBehavior = m_plasmaShellSurface->panelBehavior();
if ((panelBehavior == PlasmaShellSurfaceInterface::PanelBehavior::AutoHide && isHidden()) ||
panelBehavior == PlasmaShellSurfaceInterface::PanelBehavior::WindowsCanCover) {