Skip to content

frames: Update _MUTTER_FRAME_EXTENTS from frame size_allocate

Sebastian Keller requested to merge skeller/mutter:fix-fullscreen-gray-area into main

From the main commit:

Relying on the content size_allocate() to determine the content position
can fail in situations where the position of the content has changed,
but not its size.

This happens for examplen when the window initially is sized fullscreen
heigt + headerbar height while not considered fullscreen yet. Then when
the window is resized to just the fullscreen height and marked as
fullscreen, the content size has not changed and size_allocate() is not
called on the content. Thus the previous position which assumes the
presence of a headerbar still applies.  As a result the window is
shifted down, revealing a headerbar sized area showing the gtk window
background color.

This issue can be avoided by using the frame's size_allocate(), which
gets called in response to all relevant events, such as any headerbar
size changes, headerbar visibility changes, window resizes and
fullscreen status changes.

Closes: #2937 (closed)

Merge request reports