From 9309e435607678fc0f03f362f27ee796a3e496f7 Mon Sep 17 00:00:00 2001 From: "van Veen, Stephan" Date: Mon, 10 Nov 2025 08:50:49 +0100 Subject: [PATCH] fix: disconnect connection to last focus item on change --- src/VirtualKeyboardInputContext.cpp | 6 ++++-- src/VirtualKeyboardInputContext.h | 3 +-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/VirtualKeyboardInputContext.cpp b/src/VirtualKeyboardInputContext.cpp index 84b23c4..93a72f5 100644 --- a/src/VirtualKeyboardInputContext.cpp +++ b/src/VirtualKeyboardInputContext.cpp @@ -107,6 +107,8 @@ void VirtualKeyboardInputContext::setFocusObject(QObject *object) { Qt::ImhTime | Qt::ImhFormattedNumbersOnly; + QObject::disconnect(visibleConnection); + if (!object) { return; } @@ -141,12 +143,12 @@ void VirtualKeyboardInputContext::setFocusObject(QObject *object) { } } - visibleConnection = std::make_shared(QObject::connect(d->FocusItem, &QQuickItem::visibleChanged, this, [&](){ + visibleConnection = QObject::connect(d->FocusItem, &QQuickItem::visibleChanged, this, [&](){ if(!d->FocusItem->isVisible()) hideInputPanel(); else showInputPanel(); - })); + }); emit inputItemChanged(); diff --git a/src/VirtualKeyboardInputContext.h b/src/VirtualKeyboardInputContext.h index 93d0427..51f9c68 100644 --- a/src/VirtualKeyboardInputContext.h +++ b/src/VirtualKeyboardInputContext.h @@ -16,7 +16,6 @@ #include #include -#include class QQmlEngine; class QJSEngine; @@ -146,7 +145,7 @@ class VirtualKeyboardInputContext : public QPlatformInputContext { private: VirtualKeyboardInputContextPrivate *d; QPointer inputPanel; - std::shared_ptr visibleConnection; + QMetaObject::Connection visibleConnection; }; #endif // VIRTUALKEYBOARDINPUTCONTEXT_H