From 0eb02c8b2c1163d3a7cdca331e2ef1f32ef77089 Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Fri, 21 Jun 2024 17:27:08 +0200 Subject: [PATCH] plugins/slidingpopups: adopt input panels from when they're added Now that they will be shown and hidden in the proper state, we can set up the input panel slide as the window gets added and ignore the geometry changes that it will have in its lifetime. --- src/plugins/slidingpopups/slidingpopups.cpp | 14 +++----------- src/plugins/slidingpopups/slidingpopups.h | 1 - 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/src/plugins/slidingpopups/slidingpopups.cpp b/src/plugins/slidingpopups/slidingpopups.cpp index 8cd4e306ef..80a6c14d8c 100644 --- a/src/plugins/slidingpopups/slidingpopups.cpp +++ b/src/plugins/slidingpopups/slidingpopups.cpp @@ -211,7 +211,6 @@ void SlidingPopupsEffect::postPaintWindow(EffectWindow *w) void SlidingPopupsEffect::setupSlideData(EffectWindow *w) { - connect(w, &EffectWindow::windowFrameGeometryChanged, this, &SlidingPopupsEffect::slotWindowFrameGeometryChanged); connect(w, &EffectWindow::windowHiddenChanged, this, &SlidingPopupsEffect::slotWindowHiddenChanged); #if KWIN_BUILD_X11 @@ -222,7 +221,9 @@ void SlidingPopupsEffect::setupSlideData(EffectWindow *w) #endif // Wayland - if (auto surf = w->surface()) { + if (effects->inputPanel() == w) { + setupInputPanelSlide(); + } else if (auto surf = w->surface()) { slotWaylandSlideOnShowChanged(w); connect(surf, &SurfaceInterface::slideOnShowHideChanged, this, [this, surf] { slotWaylandSlideOnShowChanged(effects->findWindow(surf)); @@ -343,13 +344,6 @@ void SlidingPopupsEffect::slotPropertyNotify(EffectWindow *w, long atom) } #endif -void SlidingPopupsEffect::slotWindowFrameGeometryChanged(EffectWindow *w, const QRectF &) -{ - if (w == effects->inputPanel()) { - setupInputPanelSlide(); - } -} - void SlidingPopupsEffect::setupAnimData(EffectWindow *w) { const QRectF screenRect = effects->clientArea(FullScreenArea, w->screen(), effects->currentDesktop()); @@ -501,8 +495,6 @@ void SlidingPopupsEffect::setupInputPanelSlide() animData.slideOutDuration = m_slideOutDuration; setupAnimData(w); - - slideIn(w); } bool SlidingPopupsEffect::eventFilter(QObject *watched, QEvent *event) diff --git a/src/plugins/slidingpopups/slidingpopups.h b/src/plugins/slidingpopups/slidingpopups.h index 74a79efa5e..26d38174fa 100644 --- a/src/plugins/slidingpopups/slidingpopups.h +++ b/src/plugins/slidingpopups/slidingpopups.h @@ -58,7 +58,6 @@ private Q_SLOTS: void slotPropertyNotify(EffectWindow *w, long atom); #endif void slotWaylandSlideOnShowChanged(EffectWindow *w); - void slotWindowFrameGeometryChanged(EffectWindow *w, const QRectF &); void slotWindowHiddenChanged(EffectWindow *w); void slideIn(EffectWindow *w);