Synchronize shell material presentation with surface commits
Queue popup, modal and notification material geometry and opacity until the matching content buffer commits. Remove event-handler opacity writes that could present material state ahead of content, while preserving compositor dismissal ownership. Add pending-presentation regression coverage and update the nested shell lifecycle check.
This commit is contained in:
1 parent
e6e1a2a8cf
commit
bffd538dd4
9 files changed
+159
-50
No files matched your search
@@ -22,7 +22,7 @@
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
</copyright>
|
||||
|
||||
<interface name="ferese_effects_manager_v1" version="4">
|
||||
<interface name="ferese_effects_manager_v1" version="5">
|
||||
<description summary="assign semantic material roles to surfaces">
|
||||
This private global is visible only to clients granted the Ferese effects
|
||||
capability. Roles describe compositor-owned appearance policy and do not
|
||||
@@ -48,7 +48,7 @@
|
||||
</enum>
|
||||
</interface>
|
||||
|
||||
<interface name="ferese_surface_effects_v1" version="4">
|
||||
<interface name="ferese_surface_effects_v1" version="5">
|
||||
<description summary="semantic material role for one surface">
|
||||
The role affects only compositor rendering. It does not change surface
|
||||
geometry, input, focus, stacking, or the surface's Wayland role.
|
||||
@@ -107,5 +107,19 @@
|
||||
</description>
|
||||
<arg name="opacities" type="array"/>
|
||||
</request>
|
||||
<request name="set_presentation" since="5">
|
||||
<description summary="apply material presentation with the next surface commit">
|
||||
Queue the role, regions, surface opacity and region opacities together.
|
||||
They take effect on the next wl_surface.commit, with its content buffer.
|
||||
Array formats and limits match set_regions and set_region_opacities.
|
||||
Invalid arrays or roles leave the pending state unchanged. Surface opacity
|
||||
is clamped to 1000. The last valid request before a commit wins.
|
||||
Compositor-owned dismissal retains control of surface opacity.
|
||||
</description>
|
||||
<arg name="role" type="uint" enum="role"/>
|
||||
<arg name="regions" type="array"/>
|
||||
<arg name="opacity" type="uint"/>
|
||||
<arg name="region_opacities" type="array"/>
|
||||
</request>
|
||||
</interface>
|
||||
</protocol>
|
||||
Reference in new issue
Block a user