package oxbow

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Class River_window_v1.v4Source

Handler for a proxy with version >= 4.

constraint 'a = [< `V4 | `V5 ]
method private virtual on_closed : [> `V4 | `V5 ] t -> unit

The window has been closed.

The window has been closed by the server, perhaps due to an xdg_toplevel.close request or similar.

The server will send no further events on this object and ignore any request other than river_window_v1.destroy made after this event is sent. The client should destroy this object with the river_window_v1.destroy request to free up resources.

This event will be followed by a manage_start event after all other new state has been sent by the server.

method private virtual on_dimensions_hint : [> `V4 | `V5 ] t -> min_width:int32 -> min_height:int32 -> max_width:int32 -> max_height:int32 -> unit

The window's preferred min/max dimensions.

This event informs the window manager of the window's preferred min/max dimensions. These preferences are a hint, and the window manager is free to propose dimensions outside of these bounds.

All min/max width/height values must be strictly greater than or equal to 0. A value of 0 indicates that the window has no preference for that value.

If the max_width/max_height is greater than 0, the min_width/min_height must be strictly less than or equal to the max_width/max_height.

This event will be followed by a manage_start event after all other new state has been sent by the server.

method private virtual on_dimensions : [> `V4 | `V5 ] t -> width:int32 -> height:int32 -> unit

Window dimensions.

This event indicates the dimensions of the window in the compositor's logical coordinate space. The width and height must be strictly greater than zero.

Note that the dimensions of a river_window_v1 refer to the dimensions of the window content and are unaffected by the presence of borders or decoration surfaces.

This event is sent as part of a render sequence before the render_start event.

It may be sent due to a propose_dimensions or fullscreen request in a previous manage sequence or because a window independently decides to change its dimensions.

The window will not be displayed until the first dimensions event is received and the render sequence is finished.

method private virtual on_app_id : [> `V4 | `V5 ] t -> app_id:string option -> unit

The window set an application ID.

The window set an application ID.

The app_id argument will be null if the window has never set an application ID or if the window cleared its application ID. (Xwayland windows may do this for example, though xdg-toplevels may not.)

This event will be followed by a manage_start event after all other new state has been sent by the server.

method private virtual on_title : [> `V4 | `V5 ] t -> title:string option -> unit

The window set a title.

The window set a title.

The title argument will be null if the window has never set a title or if the window cleared its title. (Xwayland windows may do this for example, though xdg-toplevels may not.)

This event will be followed by a manage_start event after all other new state has been sent by the server.

method private virtual on_parent : [> `V4 | `V5 ] t -> parent: ([ `River_window_v1 ], [> Imports.River_window_v1.versions ], [ `Client ]) Proxy.t option -> unit

The window set a parent.

The window set a parent window. If this event is never received or if the parent argument is null then the window has no parent.

A surface with a parent set might be a dialog, file picker, or similar for the parent window.

Child windows should generally be rendered directly above their parent.

The compositor must guarantee that there are no loops in the window tree: a parent must not be the descendant of one of its children.

This event will be followed by a manage_start event after all other new state has been sent by the server.

method private virtual on_decoration_hint : [> `V4 | `V5 ] t -> hint:Imports.River_window_v1.Decoration_hint.t -> unit

Supported/preferred decoration style.

Information from the window about the supported and preferred client side/server side decoration options.

This event may be sent multiple times over the lifetime of the window if the window changes its preferences.

This event will be followed by a manage_start event after all other new state has been sent by the server.

method private virtual on_pointer_move_requested : [> `V4 | `V5 ] t -> seat: ([ `River_seat_v1 ], [> Imports.River_seat_v1.versions ], [ `Client ]) Proxy.t -> unit

Window requested interactive pointer move.

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.

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_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.

method private virtual on_pointer_resize_requested : [> `V4 | `V5 ] t -> seat: ([ `River_seat_v1 ], [> Imports.River_seat_v1.versions ], [ `Client ]) Proxy.t -> edges:Imports.River_window_v1.Edges.t -> unit

Window requested interactive pointer resize.

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.

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 both top and bottom or both left and right edges set.

The xdg-shell protocol for example allows windows to request that an 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_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.

method private virtual on_show_window_menu_requested : [> `V4 | `V5 ] t -> x:int32 -> y:int32 -> unit

Window requested that the window menu be shown.

The xdg-shell protocol for example allows windows to request that a window menu be shown, for example when the user right clicks on client side window decorations.

A window menu might include options to maximize or minimize the window.

The window manager is free to ignore this request and decide what the window menu contains if it does choose to show one.

The x and y arguments indicate where the window requested that the window menu be shown.

This event will be followed by a manage_start event after all other new state has been sent by the server.

method private virtual on_maximize_requested : [> `V4 | `V5 ] t -> unit

The window requested to be maximized.

The xdg-shell protocol for example allows windows to request to be maximized.

The window manager is free to honor this request using river_window_v1.inform_maximized or ignore it.

This event will be followed by a manage_start event after all other new state has been sent by the server.

method private virtual on_unmaximize_requested : [> `V4 | `V5 ] t -> unit

The window requested to be unmaximized.

The xdg-shell protocol for example allows windows to request to be unmaximized.

The window manager is free to honor this request using river_window_v1.inform_unmaximized or ignore it.

This event will be followed by a manage_start event after all other new state has been sent by the server.

method private virtual on_fullscreen_requested : [> `V4 | `V5 ] t -> output: ([ `River_output_v1 ], [> Imports.River_output_v1.versions ], [ `Client ]) Proxy.t option -> unit

The window requested to be fullscreen.

The xdg-shell protocol for example allows windows to request that they be made fullscreen and allows them to provide an optional output hint.

If the output argument is null, the window has no preference and the window manager should choose an output.

The window manager is free to honor this request using river_window_v1.fullscreen or ignore it.

This event will be followed by a manage_start event after all other new state has been sent by the server.

method private virtual on_exit_fullscreen_requested : [> `V4 | `V5 ] t -> unit

The window requested to exit fullscreen.

The xdg-shell protocol for example allows windows to request to exit fullscreen.

The window manager is free to honor this request using river_window_v1.exit_fullscreen or ignore it.

This event will be followed by a manage_start event after all other new state has been sent by the server.

method private virtual on_minimize_requested : [> `V4 | `V5 ] t -> unit

The window requested to be minimized.

The xdg-shell protocol for example allows windows to request to be minimized.

The window manager is free to ignore this request, hide the window, or do whatever else it chooses.

This event will be followed by a manage_start event after all other new state has been sent by the server.

method private virtual on_unreliable_pid : [> `V4 | `V5 ] t -> unreliable_pid:int32 -> unit

Unreliable PID of the window's creator.

This event gives an unreliable PID of the process that created the window. Obtaining this information is inherently racy due to PID reuse. Therefore, this PID must not be used for anything security sensitive.

Note also that a single process may create multiple windows, so there is not necessarily a 1-to-1 mapping from PID to window. Multiple windows may have the same PID.

This event is sent once when the river_window_v1 is created and never sent again.

method private virtual on_presentation_hint : [> `V4 | `V5 ] t -> hint:Imports.River_output_v1.Presentation_mode.t -> unit

Presentation hint set by the window.

This event communicates the window's preferred presentation mode.

This event will be followed by a render_start event after all other new state has been sent by the server.

method private virtual on_identifier : [> `V4 | `V5 ] t -> identifier:string -> unit

Unique window identifier.

The identifier is a string that contains up to 32 printable ASCII bytes. The identifier must not be an empty string.

It is compositor policy how the identifier is generated, but the following properties must be upheld:

1. The identifier must uniquely identify the window. Two windows must not share the same identifier.

2. The identifier must not be reused. This avoids races around window creation/destruction when identifiers are used in out-of-band IPC.

If the compositor implements the ext-foreign-toplevel-list-v1 protocol, the river_window_v1.identifier event must match the corresponding ext_foreign_toplevel_handle_v1.identifier event.

This event is sent once when the river_window_v1 is created and never sent again.

method private virtual on_capture_sessions : [> `V5 ] t -> count:int32 -> unit

Window screen capture sessions.

This event informs the window manager of the number of active screen capture sessions for the window.

This event is sent once when the river_window_v1 is created and again whenever the number of capture sessions changes.

This event will be followed by a manage_start event after all other new state has been sent by the server.

method min_version : int32