diff options
author | Victor Kareh <[email protected]> | 2019-05-30 14:58:01 -0400 |
---|---|---|
committer | raveit65 <[email protected]> | 2019-06-16 18:12:44 +0200 |
commit | b38437e7d1ef717fd92ef6cff5e0caa5ddcc58da (patch) | |
tree | 77f3f3fdea7860e0e7e2b24f5c8faebd1117ae44 /src/ui/frames.c | |
parent | 3e456268537d5e322d5ca9ef6f65824b7e50af8e (diff) | |
download | marco-b38437e7d1ef717fd92ef6cff5e0caa5ddcc58da.tar.bz2 marco-b38437e7d1ef717fd92ef6cff5e0caa5ddcc58da.tar.xz |
frames: include invisible area in cache
GTK+ theme might use this area to paint box-shadow. Also use
CAIRO_CONTENT_COLOR_ALPHA for cairo surfaces.
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/13137b1d
Diffstat (limited to 'src/ui/frames.c')
-rw-r--r-- | src/ui/frames.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/ui/frames.c b/src/ui/frames.c index bcee02db..011eef35 100644 --- a/src/ui/frames.c +++ b/src/ui/frames.c @@ -2307,7 +2307,7 @@ generate_pixmap (MetaFrames *frames, return NULL; result = gdk_window_create_similar_surface (frame->window, - CAIRO_CONTENT_COLOR, + CAIRO_CONTENT_COLOR_ALPHA, rect->width, rect->height); cr = cairo_create (result); @@ -2373,28 +2373,28 @@ populate_cache (MetaFrames *frames, * size without any border added. */ /* top */ - pixels->piece[0].rect.x = borders.invisible.left; - pixels->piece[0].rect.y = borders.invisible.top; - pixels->piece[0].rect.width = width + borders.visible.left + borders.visible.right; - pixels->piece[0].rect.height = borders.visible.top; + pixels->piece[0].rect.x = 0; + pixels->piece[0].rect.y = 0; + pixels->piece[0].rect.width = width + borders.total.left + borders.total.right; + pixels->piece[0].rect.height = borders.total.top; /* left */ - pixels->piece[1].rect.x = borders.invisible.left; + pixels->piece[1].rect.x = 0; pixels->piece[1].rect.y = borders.total.top; - pixels->piece[1].rect.width = borders.visible.left; + pixels->piece[1].rect.width = borders.total.left; pixels->piece[1].rect.height = height; /* right */ pixels->piece[2].rect.x = borders.total.left + width; pixels->piece[2].rect.y = borders.total.top; - pixels->piece[2].rect.width = borders.visible.right; + pixels->piece[2].rect.width = borders.total.right; pixels->piece[2].rect.height = height; /* bottom */ - pixels->piece[3].rect.x = borders.invisible.left; + pixels->piece[3].rect.x = 0; pixels->piece[3].rect.y = borders.total.top + height; - pixels->piece[3].rect.width = width + borders.visible.left + borders.visible.right; - pixels->piece[3].rect.height = borders.visible.bottom; + pixels->piece[3].rect.width = width + borders.total.left + borders.total.right; + pixels->piece[3].rect.height = borders.total.bottom; for (i = 0; i < 4; i++) { |