aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2015-01-14 11:28:06 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2015-01-17 10:50:04 +0100
commitf09f3655e4d6076b5b35563fc485fd102a6fc903 (patch)
tree6ee9b104afce498cd09dfc65e7aeb3fd7cd1b8a9 /src
parentb974fac576b620436af64ad8b617f2276b756a05 (diff)
Fix Qt.inputMethod ownership
Change-Id: Ic51f9daf17742a421a810d95b2a510caf657e08f Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/qml/qml/qqmlglobal.cpp2
-rw-r--r--src/qml/qml/v8/qqmlbuiltinfunctions.cpp1
-rw-r--r--src/quick/util/qquickglobal.cpp4
3 files changed, 5 insertions, 2 deletions
diff --git a/src/qml/qml/qqmlglobal.cpp b/src/qml/qml/qqmlglobal.cpp
index 82c1b68715..e100b53386 100644
--- a/src/qml/qml/qqmlglobal.cpp
+++ b/src/qml/qml/qqmlglobal.cpp
@@ -33,6 +33,7 @@
#include <private/qqmlglobal_p.h>
+#include <QtQml/qqmlengine.h>
#include <QtCore/qvariant.h>
#include <QtCore/qstringlist.h>
#include <QtCore/qdebug.h>
@@ -358,6 +359,7 @@ QObject *QQmlGuiProvider::inputMethod()
// We don't have any input method code by default
QObject *o = new QObject();
o->setObjectName(QString::fromLatin1("No inputMethod available"));
+ QQmlEngine::setObjectOwnership(o, QQmlEngine::JavaScriptOwnership);
return o;
}
#endif
diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp
index 9cf9ba9c12..19cb1edb60 100644
--- a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp
+++ b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp
@@ -1268,7 +1268,6 @@ ReturnedValue QtObject::method_get_application(CallContext *ctx)
ReturnedValue QtObject::method_get_inputMethod(CallContext *ctx)
{
QObject *o = QQml_guiProvider()->inputMethod();
- QQmlEngine::setObjectOwnership(o, QQmlEngine::CppOwnership);
return QV4::QObjectWrapper::wrap(ctx->d()->engine, o);
}
#endif
diff --git a/src/quick/util/qquickglobal.cpp b/src/quick/util/qquickglobal.cpp
index c75c87f8ef..146b6d73e2 100644
--- a/src/quick/util/qquickglobal.cpp
+++ b/src/quick/util/qquickglobal.cpp
@@ -926,7 +926,9 @@ public:
#ifndef QT_NO_IM
QInputMethod *inputMethod()
{
- return qGuiApp->inputMethod();
+ QInputMethod *im = qGuiApp->inputMethod();
+ QQmlEngine::setObjectOwnership(im, QQmlEngine::CppOwnership);
+ return im;
}
#endif