summaryrefslogtreecommitdiffstats
path: root/src/android/jar/src/org/qtproject/qt5/android
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/jar/src/org/qtproject/qt5/android')
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java29
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/QtLayout.java13
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/QtNative.java20
3 files changed, 60 insertions, 2 deletions
diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
index 9507d7eb3b..cddb06eff1 100644
--- a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
+++ b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
@@ -1102,4 +1102,33 @@ public class QtActivityDelegate
m_layout.removeView(view);
}
}
+
+ public void bringChildToFront(int id)
+ {
+ View view = m_surfaces.get(id);
+ if (view != null) {
+ final int index = m_layout.getChildCount() - m_nativeViews.size() - 1;
+ m_layout.moveChild(view, index < 0 ? 0 : index);
+ return;
+ }
+
+ view = m_nativeViews.get(id);
+ if (view != null)
+ m_layout.moveChild(view, -1);
+ }
+
+ public void bringChildToBack(int id)
+ {
+ View view = m_surfaces.get(id);
+ if (view != null) {
+ m_layout.moveChild(view, 0);
+ return;
+ }
+
+ view = m_nativeViews.get(id);
+ if (view != null) {
+ final int index = m_layout.getChildCount() - m_nativeViews.size();
+ m_layout.moveChild(view, index);
+ }
+ }
}
diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtLayout.java b/src/android/jar/src/org/qtproject/qt5/android/QtLayout.java
index 058b10750f..4033866e6c 100644
--- a/src/android/jar/src/org/qtproject/qt5/android/QtLayout.java
+++ b/src/android/jar/src/org/qtproject/qt5/android/QtLayout.java
@@ -205,8 +205,17 @@ public class QtLayout extends ViewGroup
}
}
- public void bringChildFront(int child)
+ public void moveChild(View view, int index)
{
- bringChildToFront(getChildAt(child));
+ if (view == null)
+ return;
+
+ if (indexOfChild(view) == -1)
+ return;
+
+ detachViewFromParent(view);
+ requestLayout();
+ invalidate();
+ attachViewToParent(view, index, view.getLayoutParams());
}
}
diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java
index 8b0febe641..aba4cfa502 100644
--- a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java
+++ b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java
@@ -537,6 +537,26 @@ public class QtNative
});
}
+ private static void bringChildToFront(final int id)
+ {
+ runAction(new Runnable() {
+ @Override
+ public void run() {
+ m_activityDelegate.bringChildToFront(id);
+ }
+ });
+ }
+
+ private static void bringChildToBack(final int id)
+ {
+ runAction(new Runnable() {
+ @Override
+ public void run() {
+ m_activityDelegate.bringChildToBack(id);
+ }
+ });
+ }
+
private static void destroySurface(final int id)
{
runAction(new Runnable() {