Module Xdg_shell_server.Xdg_popup

Short-lived, popup surfaces for menus.

A popup surface is a short-lived, temporary surface. It can be used to implement for example menus, popovers, tooltips and other similar user interface concepts.

A popup can be made to take an explicit grab. See xdg_popup.grab for details.

When the popup is dismissed, a popup_done event will be sent out, and at the same time the surface will be unmapped. See the xdg_popup.popup_done event for details.

Explicitly destroying the xdg_popup object will also dismiss the popup and unmap the surface. Clients that want to dismiss the popup when another surface of their own is clicked should dismiss the popup using the destroy request.

A newly created xdg_popup will be stacked on top of all previously created xdg_popup surfaces associated with the same xdg_toplevel.

The parent of an xdg_popup must be mapped (see the xdg_surface description) before the xdg_popup itself.

The client must call wl_surface.commit on the corresponding wl_surface for the xdg_popup state to take effect.

type 'v t = ([ `Xdg_popup ], 'v, [ `Server ]) Wayland.Proxy.t

Version 1, 2

val popup_done : [< `V1 | `V2 | `V3 | `V4 | `V5 | `V6 ] t -> unit

Popup interaction is done.

The popup_done event is sent out when a popup is dismissed by the compositor. The client should destroy the xdg_popup object at this point.

val configure : [< `V1 | `V2 | `V3 | `V4 | `V5 | `V6 ] t -> x:int32 -> y:int32 -> width:int32 -> height:int32 -> unit

Configure the popup surface.

This event asks the popup surface to configure itself given the configuration. The configured state should not be applied immediately. See xdg_surface.configure for details.

The x and y arguments represent the position the popup was placed at given the xdg_positioner rule, relative to the upper left corner of the window geometry of the parent surface.

For version 2 or older, the configure event for an xdg_popup is only ever sent once for the initial configuration. Starting with version 3, it may be sent again if the popup is setup with an xdg_positioner with set_reactive requested, or in response to xdg_popup.reposition requests.

Version 3, 4, 5, 6

val repositioned : [< `V3 | `V4 | `V5 | `V6 ] t -> token:int32 -> unit

Signal the completion of a repositioned request.

The repositioned event is sent as part of a popup configuration sequence, together with xdg_popup.configure and lastly xdg_surface.configure to notify the completion of a reposition request.

The repositioned event is to notify about the completion of a xdg_popup.reposition request. The token argument is the token passed in the xdg_popup.reposition request.

Immediately after this event is emitted, xdg_popup.configure and xdg_surface.configure will be sent with the updated size and position, as well as a new configure serial.

The client should optionally update the content of the popup, but must acknowledge the new popup configuration for the new position to take effect. See xdg_surface.ack_configure for details.

Handlers

Note: Servers will always want to use v1.

class virtual +'a v1 : object ... end

Handler for a proxy with version >= 1.

class virtual +'a v2 : object ... end

Handler for a proxy with version >= 2.

class virtual +'a v3 : object ... end

Handler for a proxy with version >= 3.

class virtual +'a v4 : object ... end

Handler for a proxy with version >= 4.

class virtual +'a v5 : object ... end

Handler for a proxy with version >= 5.

class virtual +'a v6 : object ... end

Handler for a proxy with version >= 6.