Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(624)

Unified Diff: ui/base/x/x11_util.cc

Issue 2280433004: Fix missing shadows for tooltip and menu (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/base/BUILD.gn ('k') | ui/base/x/x11_util_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/base/x/x11_util.cc
diff --git a/ui/base/x/x11_util.cc b/ui/base/x/x11_util.cc
index e73f65d5cff82716360b45817c1fb5b2dab3e875..681a2e19a0ebce40b4ae3cdb9a45f4cc2a2c3b88 100644
--- a/ui/base/x/x11_util.cc
+++ b/ui/base/x/x11_util.cc
@@ -1415,10 +1415,12 @@ void LogErrorEventDescription(XDisplay* dpy,
void ChooseVisualForWindow(bool enable_transparent_visuals,
Visual** visual,
int* depth) {
- static Visual* s_visual = NULL;
- static int s_depth = 0;
+ static Visual* s_default_visual = nullptr;
+ static Visual* s_transparent_visual = nullptr;
+ static int s_default_depth = 0;
+ static int s_transparent_depth = 0;
- if (!s_visual) {
+ if (!s_default_visual || !s_transparent_visual) {
XDisplay* display = gfx::GetXDisplay();
XAtom NET_WM_CM_S0 = XInternAtom(display, "_NET_WM_CM_S0", False);
@@ -1439,28 +1441,37 @@ void ChooseVisualForWindow(bool enable_transparent_visuals,
if (info.depth == 32 && info.visual->red_mask == 0xff0000 &&
info.visual->green_mask == 0x00ff00 &&
info.visual->blue_mask == 0x0000ff) {
- s_visual = info.visual;
- s_depth = info.depth;
+ s_transparent_visual = info.visual;
+ s_transparent_depth = info.depth;
+ DCHECK(s_transparent_visual);
break;
}
}
- } else {
- XWindowAttributes windowAttribs;
- Window root = XDefaultRootWindow(display);
- Status status = XGetWindowAttributes(display, root, &windowAttribs);
- DCHECK(status != 0);
- s_visual = windowAttribs.visual;
- s_depth = windowAttribs.depth;
}
- } // !s_visual
- DCHECK(s_visual);
- DCHECK(s_depth > 0);
+ XWindowAttributes attribs;
+ Window root = XDefaultRootWindow(display);
+ Status status = XGetWindowAttributes(display, root, &attribs);
+ DCHECK_NE(0, status);
+ s_default_visual = attribs.visual;
+ s_default_depth = attribs.depth;
+
+ if (!s_transparent_visual) {
+ s_transparent_visual = s_default_visual;
+ s_transparent_depth = s_default_depth;
+ }
+ } // !s_default_visual || !s_transparent_visual
+
+ DCHECK(s_default_visual);
+ DCHECK(s_default_depth > 0);
+ DCHECK(s_transparent_visual);
+ DCHECK(s_transparent_depth > 0);
if (visual)
- *visual = s_visual;
+ *visual =
+ enable_transparent_visuals ? s_transparent_visual : s_default_visual;
if (depth)
- *depth = s_depth;
+ *depth = enable_transparent_visuals ? s_transparent_depth : s_default_depth;
}
#endif
« no previous file with comments | « ui/base/BUILD.gn ('k') | ui/base/x/x11_util_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698