frame: Pass the frame area for get_mask()

Currently, `meta_frame_get_mask()` and `meta_ui_frame_get_mask()` will
return the frame mask applied to the current frame size, by querying the
frame themselves.

To be able to get the frame mask at an arbitrary size, change the API to
take a rectangle representing the size at which the frame mask should be
rendered.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/1009
This commit is contained in:
Olivier Fourdan
2020-01-16 11:42:04 +01:00
committed by Robert Mader
parent 7dbb4bc3f5
commit c0321c7b21
5 changed files with 20 additions and 16 deletions

View File

@ -371,10 +371,11 @@ meta_frame_get_frame_bounds (MetaFrame *frame)
}
void
meta_frame_get_mask (MetaFrame *frame,
cairo_t *cr)
meta_frame_get_mask (MetaFrame *frame,
cairo_rectangle_int_t *frame_rect,
cairo_t *cr)
{
meta_ui_frame_get_mask (frame->ui_frame, cr);
meta_ui_frame_get_mask (frame->ui_frame, frame_rect, cr);
}
void

View File

@ -72,8 +72,9 @@ void meta_frame_clear_cached_borders (MetaFrame *frame);
cairo_region_t *meta_frame_get_frame_bounds (MetaFrame *frame);
void meta_frame_get_mask (MetaFrame *frame,
cairo_t *cr);
void meta_frame_get_mask (MetaFrame *frame,
cairo_rectangle_int_t *frame_rect,
cairo_t *cr);
void meta_frame_set_screen_cursor (MetaFrame *frame,
MetaCursor cursor);