1
0
Fork 0
mutter-performance-source/src
Carlos Garnacho 4f68713020 frames: Notify borders on first content resize
This addresses the following race condition:
1. Window+MetaFrame are created non-fullscreen, _MUTTER_FRAME_EXTENTS
   is initialized through widget measuring, accounting for frame.
2. Window and MetaFrame become fullscreen.
3. MetaFrameContent gets first size allocation, already fullscreen.
4. Borders were initialized to 0,0,0,0, become set to 0,0,0,0 correctly
   reflecting fullscreen, however notify::borders is not emitted.
5. _MUTTER_FRAME_EXTENTS stays accounting for the frame extents.

It sounds sensible to have the borders initialized to a meaningful value,
so account for the first time the border would be set due to the content
being (re)sized, and let this first value trigger notify::borders resulting
in _MUTTER_FRAME_EXTENTS updates.

Since all later _MUTTER_FRAME_EXTENTS changes happen through content
resizes, we only have to cater for this initial handover between the
frame/content initialization paths done through widget measuring and
the later paths done through MetaFrameContent resizes.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2937
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3476>
2024-01-03 19:31:51 +00:00
..
backends backend/native: Move DrmFormatBuf to cogl-drm-formats 2024-01-03 14:46:41 +01:00
common backend/native: Move DrmFormatBuf to cogl-drm-formats 2024-01-03 14:46:41 +01:00
compositor multi-texture-format: Always use the tex coords of the first plane 2023-12-20 19:39:06 +00:00
core wayland: Fix building without native backend 2024-01-03 14:46:41 +01:00
frames frames: Notify borders on first content resize 2024-01-03 19:31:51 +00:00
meta core: Drop focus_frame argument from meta_display_set_input_focus() 2023-12-18 17:55:27 +00:00
tests tests/wayland: Add basic YCbCr ref-tests 2023-12-20 23:51:14 +00:00
wayland wayland: Fix building without native backend 2024-01-03 14:46:41 +01:00
x11 x11: Hook X11 focus management to MetaDisplay signal 2023-12-18 17:55:27 +00:00
meson.build x11: Remove icon cache 2023-12-15 14:14:33 +00:00
meta-private-enum-types.c.in build: Add missing include 2022-08-10 20:28:40 +02:00
meta-private-enum-types.h.in cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00