diff --git a/protocol/river-window-management-v1.xml b/protocol/river-window-management-v1.xml index 34f2a1a..7bae942 100644 --- a/protocol/river-window-management-v1.xml +++ b/protocol/river-window-management-v1.xml @@ -87,7 +87,7 @@ SPDX-License-Identifier: ISC manage sequence in between, for example during interactive move/resize of windows or if a window independently changes its own dimensions. - To summarize the main loop of this protocol is as follows: + To summarize, the main loop of this protocol is as follows: 1. The server sends events indicating all changes since the last manage sequence followed by the manage_start event. @@ -666,33 +666,30 @@ SPDX-License-Identifier: ISC - - + + This event informs the window manager that the window has requested to - be interactively moved using the pointer. The seat argument indicates - the seat for the move and the serial argument identifies the input event - (e.g. pointer button press or touch) that started the move. + be interactively moved using the pointer. The seat argument indicates the + seat for the move. The xdg-shell protocol for example allows windows to request that an interactive move be started, perhaps when a client-side rendered titlebar is dragged. - The window manager may use the river_seat_v1.op_start_serial request to + The window manager may use the river_seat_v1.op_start_pointer request to interactively move the window or ignore this event entirely. This event will be followed by a manage_start event after all other new state has been sent by the server. - - - + + This event informs the window manager that the window has requested to be interactively resized using the pointer. The seat argument indicates - the seat for the resize and the serial argument identifies the input - event (e.g. pointer button press or touch) that started the resize. + the seat for the resize. The edges argument indicates which edges the window has requested to be resized from. The edges argument will never be none and will never have @@ -702,14 +699,13 @@ SPDX-License-Identifier: ISC interactive resize be started, perhaps when the corner of client-side rendered decorations is dragged. - The window manager may use the river_seat_v1.op_start_serial request to + The window manager may use the river_seat_v1.op_start_pointer request to interactively resize the window or ignore this event entirely. This event will be followed by a manage_start event after all other new state has been sent by the server. - @@ -1424,44 +1420,21 @@ SPDX-License-Identifier: ISC - - - Start an interactive seat operation with a serial from either the - river_window_v1.move_requested or river_window_v1.resize_requested - event. - - During the operation, op_delta events will be sent based on input - corresponding to the provided serial (e.g. pointer or touch input). - - The window manager may use this operation to implement interactive - move/resize of windows by setting the position of windows and proposing - dimensions based off of the op_delta events. - - The operation continues until the pointer button, touch point or similar - corresponding to the given serial is released or the op_end request is - made and applied during a manage sequence. - - This request is ignored if an operation is already in progress for a - given river_seat_v1. - - This request modifies window management state and may only be made as - part of a manage sequence, see the river_window_manager_v1 description. - - - - Start an interactive pointer operation. During the operation, op_delta events will be sent based on pointer input. + When all pointer buttons are released, the op_release event is sent. + + The pointer operation continues until the op_end request is made during + a manage sequence and that manage sequence is finished. + The window manager may use this operation to implement interactive move/resize of windows by setting the position of windows and proposing dimensions based off of the op_delta events. - The pointer operation continues until the op_end request is made during - a manage sequence and that manage sequence is finished. This request is - ignored if an operation is already in progress. + This request is ignored if an operation is already in progress. This request modifies window management state and may only be made as part of a manage sequence, see the river_window_manager_v1 description. @@ -1472,11 +1445,29 @@ SPDX-License-Identifier: ISC This event indicates the total change in position since the start of the operation of the pointer/touch point/etc. + + This event will be followed by a manage_start event after all other new + state has been sent by the server. + + + The input driving the current interactive operation has been released. + For a pointer op for example, all pointer buttons have been released. + + Depending on the op type, op_delta events may continue to be sent until + the op is ended with the op_end request. + + This event is sent at most once during an interactive operation. + + This event will be followed by a manage_start event after all other new + state has been sent by the server. + + + End an interactive operation. @@ -1547,19 +1538,6 @@ SPDX-License-Identifier: ISC - - - Define a key binding in terms of an xkbcommon keysym and other - configurable properties. - - The new key binding is not enabled until initial configuration is - completed and the enable request is made during a manage sequence. - - - - - - Define a pointer binding in terms of a pointer button, modifiers, and @@ -1577,115 +1555,6 @@ SPDX-License-Identifier: ISC - - - This object allows the window manager to configure a xkbcommon key binding - and receive events when the key binding is triggered. - - The new key binding is not enabled until the enable request is made during - a manage sequence. - - Normally, all key events are sent to the surface with keyboard focus by - the compositor. Key events that trigger a key binding are not sent to the - surface with keyboard focus. - - If multiple key bindings would be triggered by a single physical key event - on the compositor side, it is compositor policy which key binding(s) will - receive press/release events or if all of the matched key bindings receive - press/release events. - - Key bindings might be matched by the same physical key event due to shared - keysym and modifiers. The layout override feature may also cause the same - physical key event to trigger two key bindings with different keysyms and - different layout overrides configured. - - - - - This request indicates that the client will no longer use the xkb key - binding object and that it may be safely destroyed. - - - - - - Specify an xkb layout that should be used to translate key events for - the purpose of triggering this key binding irrespective of the currently - active xkb layout. - - The layout argument is a 0-indexed xkbcommon layout number for the - keyboard that generated the key event. - - If this request is never made, the currently active xkb layout of the - keyboard that generated the key event will be used. - - This request modifies window management state and may only be made as - part of a manage sequence, see the river_window_manager_v1 description. - - - - - - - This request should be made after all initial configuration has been - completed and the window manager wishes the key binding to be able to be - triggered. - - This request modifies window management state and may only be made as - part of a manage sequence, see the river_window_manager_v1 description. - - - - - - This request may be used to temporarily disable the key binding. It may - be later re-enabled with the enable request. - - This request modifies window management state and may only be made as - part of a manage sequence, see the river_window_manager_v1 description. - - - - - - This event indicates that the physical key triggering the binding has - been pressed. - - This event will be followed by a manage_start event after all other new - state has been sent by the server. - - The compositor should wait for the manage sequence to complete before - processing further input events. This allows the window manager client - to, for example, modify key bindings and keyboard focus without racing - against future input events. The window manager should of course respond - as soon as possible as the capacity of the compositor to buffer incoming - input events is finite. - - - - - - This event indicates that the physical key triggering the binding has - been released. - - Releasing the modifiers for the binding without releasing the "main" - physical key that produces the bound keysym does not trigger the release - event. This event is sent when the "main" key is released, even if the - modifiers have changed since the pressed event. - - This event will be followed by a manage_start event after all other new - state has been sent by the server. - - The compositor should wait for the manage sequence to complete before - processing further input events. This allows the window manager client - to, for example, modify key bindings and keyboard focus without racing - against future input events. The window manager should of course respond - as soon as possible as the capacity of the compositor to buffer incoming - input events is finite. - - - - This object allows the window manager to configure a pointer binding and