From 13678ee74e7a2234d82d8383fa08cab9e87dcfa7 Mon Sep 17 00:00:00 2001 From: Robert Carr Date: Wed, 20 Apr 2016 14:04:15 -0700 Subject: [PATCH] Respect manually set HARDWARE_ACCELERATED flag. When choosing what window parameters to pass on to child windows, we need to respect the manually set FLAG_HARDWARE_ACCELERATED from Window.setFlags() in addition to the activity manifest value, and the value from setWindowManager. Given that we pass the value on to child windows from when setWindowManager is called, I think it makes sense to pass it when setFlags is called. Bug: 27099358 Bug: 23036374 Change-Id: Ie018841aadd270910fe0f8bc5a5ddca3bfbee69b --- core/java/android/view/Window.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java index 2f3f0bfa9612b..a40692dbbd715 100644 --- a/core/java/android/view/Window.java +++ b/core/java/android/view/Window.java @@ -43,6 +43,8 @@ import android.transition.Transition; import android.transition.TransitionManager; import android.view.accessibility.AccessibilityEvent; +import static android.view.WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED; + import java.util.List; /** @@ -792,8 +794,9 @@ public abstract class Window { if (wp.packageName == null) { wp.packageName = mContext.getPackageName(); } - if (mHardwareAccelerated) { - wp.flags |= WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED; + if (mHardwareAccelerated || + (mWindowAttributes.flags & FLAG_HARDWARE_ACCELERATED) != 0) { + wp.flags |= FLAG_HARDWARE_ACCELERATED; } }