summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/platforms/android/androidjniclipboard.cpp6
-rw-r--r--src/plugins/platforms/android/androidjniclipboard.h1
-rw-r--r--src/plugins/platforms/android/qandroidplatformclipboard.cpp4
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)