mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
55 lines
2.2 KiB
Diff
55 lines
2.2 KiB
Diff
|
From adc543fe6a7b3bae9522257e651205140615fecb Mon Sep 17 00:00:00 2001
|
||
|
From: Peng Huang <penghuang@chromium.org>
|
||
|
Date: Fri, 3 May 2019 20:40:41 +0000
|
||
|
Subject: [PATCH] Fix the flash for any new created window.
|
||
|
|
||
|
The flash is because the child window created by GLSurfaceGLX doesn't
|
||
|
match the visual of parent window. Fix the problem by always creating
|
||
|
parent window with the same visual.
|
||
|
|
||
|
Bug: 956061
|
||
|
Change-Id: I88cb65b4a0313be6fdea1bd8d6770d351500ccbb
|
||
|
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1591946
|
||
|
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
|
||
|
Reviewed-by: Antoine Labour <piman@chromium.org>
|
||
|
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
||
|
Cr-Commit-Position: refs/heads/master@{#656497}
|
||
|
---
|
||
|
.../desktop_window_tree_host_x11.cc | 19 +++++--------------
|
||
|
1 file changed, 5 insertions(+), 14 deletions(-)
|
||
|
|
||
|
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
|
||
|
index 4dda760a4d..8bdb7b026d 100644
|
||
|
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
|
||
|
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
|
||
|
@@ -1426,24 +1426,15 @@ void DesktopWindowTreeHostX11::InitX11Window(
|
||
|
if (override_redirect_)
|
||
|
attribute_mask |= CWOverrideRedirect;
|
||
|
|
||
|
- bool enable_transparent_visuals;
|
||
|
- switch (params.opacity) {
|
||
|
- case Widget::InitParams::OPAQUE_WINDOW:
|
||
|
- enable_transparent_visuals = false;
|
||
|
- break;
|
||
|
- case Widget::InitParams::TRANSLUCENT_WINDOW:
|
||
|
- enable_transparent_visuals = true;
|
||
|
- break;
|
||
|
- case Widget::InitParams::INFER_OPACITY:
|
||
|
- default:
|
||
|
- enable_transparent_visuals = params.type == Widget::InitParams::TYPE_DRAG;
|
||
|
- }
|
||
|
-
|
||
|
Visual* visual = CopyFromParent;
|
||
|
int depth = CopyFromParent;
|
||
|
Colormap colormap = CopyFromParent;
|
||
|
+
|
||
|
+ // GLSurfaceGLX always create child window with alpha channel. If the parent
|
||
|
+ // window doesn't have alpha channel, it causes flash, so always request argb
|
||
|
+ // visual.
|
||
|
ui::XVisualManager::GetInstance()->ChooseVisualForWindow(
|
||
|
- enable_transparent_visuals, &visual, &depth, &colormap,
|
||
|
+ true /* want_argb_visual */, &visual, &depth, &colormap,
|
||
|
&use_argb_visual_);
|
||
|
|
||
|
if (colormap != CopyFromParent) {
|