diff options
| -rw-r--r-- | core/java/android/view/IWindowManager.aidl | 6 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowManagerService.java | 11 |
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(); } |