compositor: Opt out compositor shadows from windows with frames
Let the frames client render its own shadow. In order to do that, avoid double painting a shadow on the compositor side, and extend the mask area of the frame, so it does unveil the (so far) hidden frames-client-side shadows. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2175>
This commit is contained in:
parent
84785951fd
commit
9feac5ce62
@ -397,11 +397,11 @@ has_shadow (MetaWindowActorX11 *actor_x11)
|
||||
return FALSE;
|
||||
|
||||
/*
|
||||
* Always put a shadow around windows with a frame - This should override
|
||||
* Let the frames client put a shadow around frames - This should override
|
||||
* the restriction about not putting a shadow around ARGB windows.
|
||||
*/
|
||||
if (meta_window_get_frame (window))
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
|
||||
/*
|
||||
* Do not add shadows to non-opaque (ARGB32) windows, as we can't easily
|
||||
|
@ -473,10 +473,9 @@ meta_frame_get_mask (MetaFrame *frame,
|
||||
meta_frame_calc_borders (frame, &borders);
|
||||
|
||||
cairo_rectangle (cr,
|
||||
borders.invisible.left,
|
||||
borders.invisible.top,
|
||||
frame_rect->width,
|
||||
frame_rect->height);
|
||||
0, 0,
|
||||
frame->rect.width,
|
||||
frame->rect.height);
|
||||
cairo_set_source_rgb (cr, 0, 0, 0);
|
||||
cairo_fill (cr);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user