diff --git a/ksmserver/screenlocker/greeter/greeterapp.cpp b/ksmserver/screenlocker/greeter/greeterapp.cpp index b93900fd2..c65d6bfad 100644 --- a/ksmserver/screenlocker/greeter/greeterapp.cpp +++ b/ksmserver/screenlocker/greeter/greeterapp.cpp @@ -255,14 +255,16 @@ void UnlockApp::desktopResized() view->showFullScreen(); } view->raise(); - connect(view, &QQuickWindow::frameSwapped, this, &UnlockApp::markViewsAsVisible, Qt::QueuedConnection); + + connect(view, &QQuickWindow::frameSwapped, this, [this, view] { + markViewsAsVisible(view); + }, Qt::QueuedConnection); } } -void UnlockApp::markViewsAsVisible() +void UnlockApp::markViewsAsVisible(KQuickAddons::QuickViewSharedEngine *view) { - auto *view = qobject_cast(sender()); - disconnect(view, &QQuickWindow::frameSwapped, this, &UnlockApp::markViewsAsVisible); + disconnect(view, &QQuickWindow::frameSwapped, this, 0); QQmlProperty showProperty(view->rootObject(), QStringLiteral("viewVisible")); showProperty.write(true); // random state update, actually rather required on init only diff --git a/ksmserver/screenlocker/greeter/greeterapp.h b/ksmserver/screenlocker/greeter/greeterapp.h index dcfc5d1a6..35e7aa5a3 100644 --- a/ksmserver/screenlocker/greeter/greeterapp.h +++ b/ksmserver/screenlocker/greeter/greeterapp.h @@ -72,7 +72,7 @@ private Q_SLOTS: void suspendToRam(); void suspendToDisk(); void getFocus(); - void markViewsAsVisible(); + void markViewsAsVisible(KQuickAddons::QuickViewSharedEngine *view); void setLockedPropertyOnViews(); private: