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