diff options
author | Victor Kareh <[email protected]> | 2019-05-22 10:56:11 -0400 |
---|---|---|
committer | Victor Kareh <[email protected]> | 2019-06-05 10:49:37 -0400 |
commit | 6f33395c69550e1fad6aa49d52e1284ca89f88c1 (patch) | |
tree | 09cb0f940a05451daff3e5814fc486bf1d59baea /src/ui/frames.h | |
parent | 478b2c78379c56dade8e59b342c5fa6344f33314 (diff) | |
download | marco-6f33395c69550e1fad6aa49d52e1284ca89f88c1.tar.bz2 marco-6f33395c69550e1fad6aa49d52e1284ca89f88c1.tar.xz |
Only shadow ARGB windows with a frame outside the frame
An ARGB window with a frame is likely something like a transparent
terminal. It looks awful (and breaks transparency) to draw a big
opaque black shadow under the window, so clip out the region under
the terminal from the shadow we draw.
Add meta_window_get_frame_bounds() to get a cairo region for the
outer bounds of the frame of a window, and modify the frame handling
code to notice changes to the frame shape and discard a cached
region. meta_frames_apply_shapes() is refactored so we can extract
meta_frames_get_frame_bounds() from it.
https://bugzilla.gnome.org/show_bug.cgi?id=635268
NOTE: Applied only partially, compositor part is still missing...
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/0f2e32d1
Diffstat (limited to 'src/ui/frames.h')
-rw-r--r-- | src/ui/frames.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/ui/frames.h b/src/ui/frames.h index b27f3b11..0af5ed89 100644 --- a/src/ui/frames.h +++ b/src/ui/frames.h @@ -140,6 +140,10 @@ void meta_frames_apply_shapes (MetaFrames *frames, int new_window_width, int new_window_height, gboolean window_has_shape); +cairo_region_t *meta_frames_get_frame_bounds (MetaFrames *frames, + Window xwindow, + int window_width, + int window_height); void meta_frames_move_resize_frame (MetaFrames *frames, Window xwindow, int x, |