diff options
| author | Victor Kareh <[email protected]> | 2019-05-30 14:58:01 -0400 | 
|---|---|---|
| committer | Victor Kareh <[email protected]> | 2019-06-05 10:49:37 -0400 | 
| commit | 71fc84f4ea42bd2dc3db2208f83b2cf9af787d7b (patch) | |
| tree | 023382da38fdfbd2ff802226ec948a8a179ec735 | |
| parent | c9339a8b67cf8b684947322638da92ed69f86358 (diff) | |
| download | marco-71fc84f4ea42bd2dc3db2208f83b2cf9af787d7b.tar.bz2 marco-71fc84f4ea42bd2dc3db2208f83b2cf9af787d7b.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
| -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 5f73ce28..554c2134 100644 --- a/src/ui/frames.c +++ b/src/ui/frames.c @@ -2305,7 +2305,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); @@ -2371,28 +2371,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++)      { | 
