From 36ca72c6c22489b5a29ce61ebf63824b3db03a52 Mon Sep 17 00:00:00 2001 From: Muyuan Li Date: Sat, 6 Aug 2016 20:24:06 -0700 Subject: Prevents screenshot layer from dismissing IME. Add code to adjustWindowLw to force the flag FLAG_NOT_FOCUSABLE to be set for layer type TYPE_SCREENSHOT. Bug: 30485483 Change-Id: I11725eb89fda59b6d50fa1700845cdfe9ffb930b --- core/java/android/view/WindowManager.java | 2 +- services/core/java/com/android/server/policy/PhoneWindowManager.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java index fe2423093c88..1b37ed47c392 100644 --- a/core/java/android/view/WindowManager.java +++ b/core/java/android/view/WindowManager.java @@ -636,7 +636,7 @@ public interface WindowManager extends ViewManager { /** * Window type: shares similar characteristics with {@link #TYPE_DREAM}. The layer is - * reserved for screenshot region selection. + * reserved for screenshot region selection. These windows must not take input focus. * @hide */ public static final int TYPE_SCREENSHOT = FIRST_SYSTEM_WINDOW + 36; diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index f1ab1834931b..46bf239b9b84 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -2229,6 +2229,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { attrs.privateFlags &= ~WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD; } break; + case TYPE_SCREENSHOT: + attrs.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; + break; } if (attrs.type != TYPE_STATUS_BAR) { -- cgit v1.2.3-59-g8ed1b