public interface WlSurfaceEventsV4 extends WlSurfaceEventsV3
A surface is a rectangular area that is displayed on the screen. It has a location, size and pixel contents.
The size of a surface (and relative positions on it) is described in surface-local coordinates, which may differ from the buffer coordinates of the pixel content, in case a buffer_transform or a buffer_scale is used.
A surface without a "role" is fairly useless: a compositor does not know where, when or how to present it. The role is the purpose of a wl_surface. Examples of roles are a cursor for a pointer (as set by wl_pointer.set_cursor), a drag icon (wl_data_device.start_drag), a sub-surface (wl_subcompositor.get_subsurface), and a window as defined by a shell protocol (e.g. wl_shell.get_shell_surface).
A surface can have only one role at a time. Initially a wl_surface does not have a role. Once a wl_surface is given a role, it is set permanently for the whole lifetime of the wl_surface object. Giving the current role again is allowed, unless explicitly forbidden by the relevant interface specification.
Surface roles are given by requests in other interfaces such as wl_pointer.set_cursor. The request should explicitly mention that this request gives a role to a wl_surface. Often, this request also creates a new protocol object that represents the role and adds additional functionality to wl_surface. When a client wants to destroy a wl_surface, they must destroy this 'role object' before the wl_surface.
Destroying the role object does not remove the role from the wl_surface, but it may stop the wl_surface from "playing the role". For instance, if a wl_subsurface object is destroyed, the wl_surface it was created for will be unmapped and forget its position and z-order. It is allowed to create a wl_subsurface for the same wl_surface again, but it is not allowed to use the wl_surface as a cursor (cursor is a different role than sub-surface, and role switching is not allowed).
| Modifier and Type | Field and Description |
|---|---|
static int |
VERSION |
| Modifier and Type | Method and Description |
|---|---|
void |
enter(WlSurfaceProxy emitter,
WlOutputProxy output)
surface enters an output
|
void |
leave(WlSurfaceProxy emitter,
WlOutputProxy output)
surface leaves an output
|
static final int VERSION
void enter(WlSurfaceProxy emitter, @Nonnull WlOutputProxy output)
This is emitted whenever a surface's creation, movement, or resizing results in some part of it being within the scanout region of an output.
Note that a surface may be overlapping with zero or more outputs.
enter in interface WlSurfaceEventsenter in interface WlSurfaceEventsV2enter in interface WlSurfaceEventsV3emitter - The protocol object that emitted the event.output - output entered by the surfacevoid leave(WlSurfaceProxy emitter, @Nonnull WlOutputProxy output)
This is emitted whenever a surface's creation, movement, or resizing results in it no longer having any part of it within the scanout region of an output.
leave in interface WlSurfaceEventsleave in interface WlSurfaceEventsV2leave in interface WlSurfaceEventsV3emitter - The protocol object that emitted the event.output - output left by the surfaceCopyright © 2016. All rights reserved.