diff options
author | Victor Kareh <[email protected]> | 2019-05-22 10:56:11 -0400 |
---|---|---|
committer | raveit65 <[email protected]> | 2019-06-16 18:12:44 +0200 |
commit | 68438829dc3050fafddcf24a059b93f345c9b5eb (patch) | |
tree | 526e67cc31b421f94703b4f7b9bee07bb2594160 /src/core/frame-private.h | |
parent | 54b4bd0e2ab7014f5c8acc0336aa6a5a420d3c37 (diff) | |
download | marco-68438829dc3050fafddcf24a059b93f345c9b5eb.tar.bz2 marco-68438829dc3050fafddcf24a059b93f345c9b5eb.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/core/frame-private.h')
-rw-r--r-- | src/core/frame-private.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/frame-private.h b/src/core/frame-private.h index 1b995f58..d7183149 100644 --- a/src/core/frame-private.h +++ b/src/core/frame-private.h @@ -59,10 +59,11 @@ void meta_frame_queue_draw (MetaFrame *frame); MetaFrameFlags meta_frame_get_flags (MetaFrame *frame); -void meta_frame_sync_to_window (MetaFrame *frame, +gboolean meta_frame_sync_to_window (MetaFrame *frame, int gravity, gboolean need_move, gboolean need_resize); +cairo_region_t *meta_frame_get_frame_bounds (MetaFrame *frame); void meta_frame_set_screen_cursor (MetaFrame *frame, MetaCursor cursor); |