summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/view/IWindowManager.aidl6
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerService.java11
2 files changed, 17 insertions, 0 deletions
diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl
index 58a6a5e78803..2b73c14540d5 100644
--- a/core/java/android/view/IWindowManager.aidl
+++ b/core/java/android/view/IWindowManager.aidl
@@ -29,6 +29,7 @@ import android.graphics.Bitmap;
import android.graphics.GraphicBuffer;
import android.graphics.Point;
import android.graphics.Rect;
+import android.graphics.Region;
import android.os.Bundle;
import android.os.IRemoteCallback;
import android.os.ParcelFileDescriptor;
@@ -377,4 +378,9 @@ interface IWindowManager
* associated with that InputConsumer.
*/
boolean destroyInputConsumer(String name);
+
+ /**
+ * Return the touch region for the current IME window, or an empty region if there is none.
+ */
+ Region getCurrentImeTouchRegion();
}
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 4b066c0cad6e..98910ea66ec3 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -6188,6 +6188,17 @@ public class WindowManagerService extends IWindowManager.Stub
}
@Override
+ public Region getCurrentImeTouchRegion() {
+ synchronized (mWindowMap) {
+ final Region r = new Region();
+ if (mInputMethodWindow != null) {
+ mInputMethodWindow.getTouchableRegion(r);
+ }
+ return r;
+ }
+ }
+
+ @Override
public boolean hasNavigationBar() {
return mPolicy.hasNavigationBar();
}