Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 51d67cf6 authored by Albert Chaulk's avatar Albert Chaulk
Browse files

Add a WM API to query the touch region for the input method window

This is needed by VR to handle keyboards that display a window larger
than the interactable region

Bug: 62194867
Test: Manually with prints
Change-Id: I7288956ed8da8d24e7c46ffa8f27461f7abbca5e
(cherry picked from commit 56162a0a)
parent 2fe945c3
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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();
}
+11 −0
Original line number Diff line number Diff line
@@ -6187,6 +6187,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();