From 844ffce03738d003a149ad9f022005f897194b2e Mon Sep 17 00:00:00 2001 From: Leon Henrik Plickat Date: Sun, 14 Aug 2022 16:34:18 +0200 Subject: river-layout: add user_command_tags event It is not guaranteed that the next layout_demand event after a user_command event has the same active tags (for example when there are no views visible). As an example, a user could trigger a user_command while no views are visible, then switch to a different tag set which has active views. The active tags of the previous layout_demand may also be different. Therefore it is impossible to correctly implement a layout generator which has user commands apply only to the currently active tag set, which is solved by this patch. --- protocol/river-layout-v3.xml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'protocol') diff --git a/protocol/river-layout-v3.xml b/protocol/river-layout-v3.xml index c9822eb..8a1bdce 100644 --- a/protocol/river-layout-v3.xml +++ b/protocol/river-layout-v3.xml @@ -38,7 +38,7 @@ can only be done by creating a new major version of the extension. - + A global factory for river_layout_v3 objects. @@ -71,7 +71,7 @@ - + This interface allows clients to receive layout demands from the compositor for a specific output and subsequently propose positions and @@ -174,8 +174,23 @@ A layout_demand will be sent after this event if the compositor is currently using this layout object to arrange the output. + + If version 2 or higher of the river_layout_v3 object is bound, the + user_command_tags event is guaranteed to be sent directly before the + user_command event. + + + + If version 2 or higher of the river_layout_v3 object is bound, this + event will be sent directly before every user_command event. This allows + layout generators to be aware of the active tags when a user command is + sent. This is necessary for generators wanting to keep settings on a + per-tag basis. + + + -- cgit v1.2.3