Repository navigation
wlr: expose xdg configure serials - #9
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
XDGToplevel.SetSizenow returns the configure serial, likewlr_xdg_toplevel_set_sizealready does. The old signature dropped it. No caller in this module used the result, so nothing else changes.This also adds
XDGSurfaceState.ConfigureSerial, a plain accessor for theconfigure_serialfield ofwlr_xdg_surface_state.XDGSurface.Current().ConfigureSerial()is the serial of the last configure the client acked and then committed. That second binding is not part of the original ask, but the serial fromSetSizeis only useful next to it. There is no ack_configure event in the bindings, so without it a compositor can't tell when a client has caught up.kawa needs both to stop flooding xdg clients with configures during an interactive resize. It sends one size, waits until the client acks and commits that serial, and only then sends the newest size it wanted in the meantime. Today it sends one configure per pointer motion. A client that falls behind fills its socket buffer and gets disconnected with
Data too big for buffer.Verified with
go build ./...andgo vet .against wlroots 0.20.2, and by running kawa pinned to this branch (DeedleFake/kawa#16) in a nested session. A 200-motion resize drag of a weston-terminal went from 107 configures to 6, and the last one still carried the final dragged size.