-
Notifications
You must be signed in to change notification settings - Fork 343
Choose more consistent commit behavior #2098
Comments
Oh, and each shell (xdg-shell, layer-shell) also has state structs with similar issues. |
Probably not, because users can easily cache any value if they need to. |
This event contains a `committed` bitfield, which allows callers to know which output fields changed during the commit. This allows users to setup a single atomic commit listener, instead of setting up one listener for each event (mode, scale, transform, and so on). References: swaywm#2098
#2315 introduces a |
This event contains a `committed` bitfield, which allows callers to know which output fields changed during the commit. This allows users to setup a single atomic commit listener, instead of setting up one listener for each event (mode, scale, transform, and so on). References: swaywm#2098
This event contains a `committed` bitfield, which allows callers to know which output fields changed during the commit. This allows users to setup a single atomic commit listener, instead of setting up one listener for each event (mode, scale, transform, and so on). References: #2098
Instead of relying on output.pending.committed, use wlr_output_event_commit to find out whether a buffer was committed. Eventually output.pending will be cleared before the commit event is emitted. References: #2098
Addressed in #2630 |
Instead of relying on output.pending.committed, use wlr_output_event_commit to find out whether a buffer was committed. Eventually output.pending will be cleared before the commit event is emitted. References: swaywm#2098
One solution would be to re-pupose the Another solution would be to introduce some kind of "request_configure" event on the add-on objects, that runs before the Add-ons like xdg-decoration would still need to update its state in the "precommit" phase. We'd need a new |
Right now we have two commit events: one for
wlr_surface
, one forwlr_output
. Each of these structs have a state struct with apending
andcurrent
field.When
commit
is emitted, I'd expect these assumptions to be true:current
statepending
state should be empty (it's just been applied)Questions:
pending.committed
is a bitmask of fields changed since last commit. What shouldcurrent.committed
mean? Right now it seems like it's the union of all commits'pending.committed
.Right now (1) is true, however:
wlr_output
clears the pending state aftercommit
is emitted, breaking (3). The pending state is used by users to figure out what changed (2).wlr_output
provides no access to the previous state.wlr_surface
has aprevious
state, howeverprevious.buffer
is an exception and is always set to NULL. (3) is true. Also, the previous state seems to be only used bywlr_surface
itself. Users have no way to figure out what changed (2).It would be nice to decide on a consistent behavior.
wlroots has migrated to gitlab.freedesktop.org. This issue has been moved to:
https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/2098
The text was updated successfully, but these errors were encountered: