After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 770131 - wayland: Fix subsurface actor state synchronization
wayland: Fix subsurface actor state synchronization
Status: RESOLVED FIXED
Product: mutter
Classification: Core
Component: wayland
unspecified
Other All
: Normal normal
: ---
Assigned To: mutter-maint
mutter-maint
Depends on:
Blocks:
 
 
Reported: 2016-08-19 07:20 UTC by Jonas Ådahl
Modified: 2016-08-25 04:49 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
wayland: Use correct GObject parent in subsurface role object (962 bytes, patch)
2016-08-19 07:20 UTC, Jonas Ådahl
committed Details | Review
wayland/actor-surface-role: Check for toplevel window (1.21 KB, patch)
2016-08-19 07:21 UTC, Jonas Ådahl
committed Details | Review
wayland/subsurface: Call commit of surface-actor-role on commit (1.54 KB, patch)
2016-08-19 07:21 UTC, Jonas Ådahl
committed Details | Review

Description Jonas Ådahl 2016-08-19 07:20:55 UTC
The surface actor of subsurfaces was not properly synchronized since
'e73166bcd5b112122f9e4c7e6db48ab925f199e8'. These patches fixes that.
Comment 1 Jonas Ådahl 2016-08-19 07:20:59 UTC
Created attachment 333611 [details] [review]
wayland: Use correct GObject parent in subsurface role object

The parent of MetaWaylandSurfaceRoleSubsurface is
MetaWaylandSurfaceRoleActorSurface thus use that as the GObject parent.
Comment 2 Jonas Ådahl 2016-08-19 07:21:04 UTC
Created attachment 333612 [details] [review]
wayland/actor-surface-role: Check for toplevel window

Don't check whether the surface of the role has a window, but whether
the corresponding toplevel surface has a window. This is necessary to
make subsurfaces not always early out.
Comment 3 Jonas Ådahl 2016-08-19 07:21:09 UTC
Created attachment 333613 [details] [review]
wayland/subsurface: Call commit of surface-actor-role on commit

Rely on the actor surface role's commit function for queuing frame
callbacks. This also makes the surface actor state synchronization work
again, which was broken by 'wayland: Sync surface actor state in actor
role commit handler'.
Comment 4 Rui Matos 2016-08-19 14:20:22 UTC
Review of attachment 333611 [details] [review]:

yeah, too many types :-P
Comment 5 Rui Matos 2016-08-19 14:28:45 UTC
Review of attachment 333612 [details] [review]:

this patch doesn't apply here but looks good
Comment 6 Rui Matos 2016-08-19 14:29:20 UTC
Review of attachment 333613 [details] [review]:

makes sense
Comment 7 Jonas Ådahl 2016-08-19 14:54:18 UTC
(In reply to Rui Matos from comment #5)
> Review of attachment 333612 [details] [review] [review]:
> 
> this patch doesn't apply here but looks good

Yea, these are on top of the xdg-shell v6 patches (found this issue while testing those patches). Thanks for the review.
Comment 8 Jonas Ådahl 2016-08-25 04:48:48 UTC
Pushed thes ones, as well as one more that was needed that handled commits of subsurfaces part of on non-mapped windows.

Attachment 333611 [details] pushed as 4cf14c4 - wayland: Use correct GObject parent in subsurface role object
Attachment 333612 [details] pushed as 43151ed - wayland/actor-surface-role: Check for toplevel window
Attachment 333613 [details] pushed as b6e13c4 - wayland/subsurface: Call commit of surface-actor-role on commit