diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/platforms/android/androidjniclipboard.cpp | 6 | ||||
-rw-r--r-- | src/plugins/platforms/android/androidjniclipboard.h | 1 | ||||
-rw-r--r-- | src/plugins/platforms/android/qandroidplatformclipboard.cpp | 4 |
3 files changed, 10 insertions, 1 deletions
diff --git a/src/plugins/platforms/android/androidjniclipboard.cpp b/src/plugins/platforms/android/androidjniclipboard.cpp index 671d0b56d0..c20ac456b1 100644 --- a/src/plugins/platforms/android/androidjniclipboard.cpp +++ b/src/plugins/platforms/android/androidjniclipboard.cpp @@ -63,9 +63,13 @@ namespace QtAndroidClipboard return; } } - void setClipboardMimeData(QMimeData *data) + void clearClipboardData() { QJNIObjectPrivate::callStaticMethod<void>(applicationClass(), "clearClipData"); + } + void setClipboardMimeData(QMimeData *data) + { + clearClipboardData(); if (data->hasText()) { QJNIObjectPrivate::callStaticMethod<void>(applicationClass(), "setClipboardText", "(Ljava/lang/String;)V", diff --git a/src/plugins/platforms/android/androidjniclipboard.h b/src/plugins/platforms/android/androidjniclipboard.h index e83e6b555c..96992340a6 100644 --- a/src/plugins/platforms/android/androidjniclipboard.h +++ b/src/plugins/platforms/android/androidjniclipboard.h @@ -53,6 +53,7 @@ namespace QtAndroidClipboard void setClipboardManager(QAndroidPlatformClipboard *manager); void setClipboardMimeData(QMimeData *data); QMimeData *getClipboardMimeData(); + void clearClipboardData(); void onClipboardDataChanged(JNIEnv */*env*/, jobject /*thiz*/); // Clipboard support } diff --git a/src/plugins/platforms/android/qandroidplatformclipboard.cpp b/src/plugins/platforms/android/qandroidplatformclipboard.cpp index 2912c58e8c..cc32bbf771 100644 --- a/src/plugins/platforms/android/qandroidplatformclipboard.cpp +++ b/src/plugins/platforms/android/qandroidplatformclipboard.cpp @@ -66,6 +66,10 @@ QMimeData *QAndroidPlatformClipboard::mimeData(QClipboard::Mode mode) void QAndroidPlatformClipboard::setMimeData(QMimeData *data, QClipboard::Mode mode) { + if (!data) { + QtAndroidClipboard::clearClipboardData(); + return; + } if (data && supportsMode(mode)) QtAndroidClipboard::setClipboardMimeData(data); if (data != 0) |