summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/platforms/android/androidjnimain.cpp22
-rw-r--r--src/plugins/platforms/android/androidjnimain.h2
-rw-r--r--src/plugins/platforms/android/qandroidplatformforeignwindow.cpp18
-rw-r--r--src/plugins/platforms/android/qandroidplatformforeignwindow.h2
4 files changed, 44 insertions, 0 deletions
diff --git a/src/plugins/platforms/android/androidjnimain.cpp b/src/plugins/platforms/android/androidjnimain.cpp
index e068a43241..11f0bc5ffe 100644
--- a/src/plugins/platforms/android/androidjnimain.cpp
+++ b/src/plugins/platforms/android/androidjnimain.cpp
@@ -401,6 +401,28 @@ namespace QtAndroid
surfaceId);
}
+ void bringChildToFront(int surfaceId)
+ {
+ if (surfaceId == -1)
+ return;
+
+ QJNIObjectPrivate::callStaticMethod<void>(m_applicationClass,
+ "bringChildToFront",
+ "(I)V",
+ surfaceId);
+ }
+
+ void bringChildToBack(int surfaceId)
+ {
+ if (surfaceId == -1)
+ return;
+
+ QJNIObjectPrivate::callStaticMethod<void>(m_applicationClass,
+ "bringChildToBack",
+ "(I)V",
+ surfaceId);
+ }
+
bool blockEventLoopsWhenSuspended()
{
static bool block = qgetenv("QT_BLOCK_EVENT_LOOPS_WHEN_SUSPENDED").toInt();
diff --git a/src/plugins/platforms/android/androidjnimain.h b/src/plugins/platforms/android/androidjnimain.h
index 7f762c8108..01330ce283 100644
--- a/src/plugins/platforms/android/androidjnimain.h
+++ b/src/plugins/platforms/android/androidjnimain.h
@@ -64,6 +64,8 @@ namespace QtAndroid
int insertNativeView(jobject view, const QRect &geometry);
void setSurfaceGeometry(int surfaceId, const QRect &geometry);
void destroySurface(int surfaceId);
+ void bringChildToFront(int surfaceId);
+ void bringChildToBack(int surfaceId);
QWindow *topLevelWindowAt(const QPoint &globalPos);
int desktopWidthPixels();
diff --git a/src/plugins/platforms/android/qandroidplatformforeignwindow.cpp b/src/plugins/platforms/android/qandroidplatformforeignwindow.cpp
index af409d13a0..31c3614284 100644
--- a/src/plugins/platforms/android/qandroidplatformforeignwindow.cpp
+++ b/src/plugins/platforms/android/qandroidplatformforeignwindow.cpp
@@ -53,6 +53,24 @@ QAndroidPlatformForeignWindow::~QAndroidPlatformForeignWindow()
QtAndroid::destroySurface(m_surfaceId);
}
+void QAndroidPlatformForeignWindow::lower()
+{
+ if (m_surfaceId == -1)
+ return;
+
+ QAndroidPlatformWindow::lower();
+ QtAndroid::bringChildToBack(m_surfaceId);
+}
+
+void QAndroidPlatformForeignWindow::raise()
+{
+ if (m_surfaceId == -1)
+ return;
+
+ QAndroidPlatformWindow::raise();
+ QtAndroid::bringChildToFront(m_surfaceId);
+}
+
void QAndroidPlatformForeignWindow::setGeometry(const QRect &rect)
{
QWindow *parent = window()->parent();
diff --git a/src/plugins/platforms/android/qandroidplatformforeignwindow.h b/src/plugins/platforms/android/qandroidplatformforeignwindow.h
index 974ffbc376..df11c78b7c 100644
--- a/src/plugins/platforms/android/qandroidplatformforeignwindow.h
+++ b/src/plugins/platforms/android/qandroidplatformforeignwindow.h
@@ -45,6 +45,8 @@ class QAndroidPlatformForeignWindow : public QAndroidPlatformWindow
public:
explicit QAndroidPlatformForeignWindow(QWindow *window);
~QAndroidPlatformForeignWindow();
+ void lower() Q_DECL_OVERRIDE;
+ void raise() Q_DECL_OVERRIDE;
void setGeometry(const QRect &rect) Q_DECL_OVERRIDE;
void setVisible(bool visible) Q_DECL_OVERRIDE;
void applicationStateChanged(Qt::ApplicationState state) Q_DECL_OVERRIDE;