Louvre
v2.13.0-1
C++ library for Wayland compositors
|
Toplevel role for surfaces. More...
Classes | |
struct | Atoms |
Atomic properties. More... | |
struct | Configuration |
Configuration parameters sent to the client. More... | |
Public Types | |
enum | State : UInt16 |
Flags indicating the possible states of a Toplevel. More... | |
enum | DecorationMode : UInt32 |
Decoration mode. More... | |
enum | AtomChanges : UInt32 |
Flags indicating which atomic properties have changed during an atomsChanged() event. More... | |
enum | Capabilities : UInt8 |
Compositor capabilities flags. More... | |
Public Types inherited from LBaseSurfaceRole | |
enum | CommitOrigin |
Commit origin. More... | |
Public Types inherited from LFactoryObject | |
enum class | Type : Int32 |
Base factory object types. More... | |
Public Member Functions | |
LToplevelRole (const void *params) noexcept | |
Constructor of the LToplevelRole class. More... | |
~LToplevelRole () | |
Destructor of the LToplevelRole class. More... | |
const Configuration * | findConfiguration (UInt32 serial) const noexcept |
Find configuration by serial number. More... | |
const Configuration & | pendingConfiguration () const noexcept |
Pending configuration. More... | |
void | configureState (LBitset< State > flags) noexcept |
Configure the toplevel state. More... | |
void | configureSize (const LSize &size) noexcept |
Configure the toplevel size. More... | |
void | configureSize (Int32 width, Int32 height) noexcept |
Configure the toplevel size. More... | |
void | configureDecorationMode (DecorationMode mode) noexcept |
Configure the toplevel decoration mode. More... | |
void | configureCapabilities (LBitset< Capabilities > caps) noexcept |
Notifies the toplevel about the compositor's capabilities. More... | |
void | configureBounds (const LSize &bounds) noexcept |
Asks the client to constrain its size to the specified bounds. More... | |
void | configureBounds (Int32 width, Int32 height) noexcept |
Asks the client to constrain its size to the specified bounds. More... | |
const Atoms & | atoms () const noexcept |
Current atomic properties. More... | |
LBitset< State > | state () const noexcept |
Current toplevel state. More... | |
LBitset< State > | supportedStates () const noexcept |
Returns the states supported by the toplevel. More... | |
bool | activated () const noexcept |
Checks if the toplevel state() includes the Activated flag. More... | |
bool | maximized () const noexcept |
Checks if the toplevel state() includes the Maximized flag. More... | |
bool | fullscreen () const noexcept |
Checks if the toplevel state() includes the Fullscreen flag. More... | |
bool | tiled () const noexcept |
Checks if the toplevel state() includes any of the tiled flags. More... | |
bool | resizing () const noexcept |
Checks if the toplevel state() includes the Resizing flag. More... | |
bool | suspended () const noexcept |
Checks if the toplevel state() includes the Suspended flag. More... | |
const LRect & | windowGeometry () const noexcept |
Window geometry in surface coordinates. More... | |
void | setExtraGeometry (const LMargins &margins) noexcept |
Sets extra geometry margins. More... | |
const LMargins & | extraGeometry () const noexcept |
Extra geometry margins. More... | |
const LSize & | minSize () const noexcept |
Gets the minimum size of the toplevel in surface coordinates. More... | |
const LSize & | maxSize () const noexcept |
Gets the maximum size of the toplevel in surface coordinates. More... | |
bool | sizeInRange (const LSize &size) const noexcept |
Check if the provided size falls within the range defined by minSize() and maxSize(). More... | |
LMargins | calculateConstraintsFromOutput (LOutput *output, bool includeExtraGeometry=true) const noexcept |
Constraints during move/resize sessions. More... | |
const LSize & | bounds () const noexcept |
Current bounds. More... | |
LBitset< Capabilities > | capabilities () const noexcept |
Current capabilities. More... | |
DecorationMode | decorationMode () const noexcept |
The current decoration mode. More... | |
DecorationMode | preferredDecorationMode () const noexcept |
Gets the preferred decoration mode set by the client. More... | |
bool | supportServerSideDecorations () const noexcept |
Check if the toplevel supports server-side decorations. More... | |
UInt32 | serial () const noexcept |
Last configuration serial ACK by the client. More... | |
void | setExclusiveOutput (LOutput *output) noexcept |
Sets the exclusive output hint. More... | |
virtual LOutput * | exclusiveOutput () const override |
Exclusive output hint. More... | |
LToplevelMoveSession & | moveSession () const noexcept |
Utility for handling interactive moving sessions. More... | |
LToplevelResizeSession & | resizeSession () const noexcept |
Utility for handling interactive resizing sessions. More... | |
Protocols::XdgShell::RXdgToplevel * | xdgToplevelResource () const |
xdg_toplevel resource from the XDG Shell protocol. More... | |
Protocols::XdgShell::RXdgSurface * | xdgSurfaceResource () const |
xdg_surface resource from the XDG Shell protocol. More... | |
const std::string & | appId () const noexcept |
Gets the application ID associated with the toplevel window. More... | |
const std::string & | title () const noexcept |
Gets the window title of the toplevel. More... | |
void | close () noexcept |
Closes the toplevel. More... | |
const std::vector< LForeignToplevelController * > & | foreignControllers () const noexcept |
Vector of foreign controllers. More... | |
LForeignToplevelController * | requesterController () const noexcept |
LForeignToplevelController triggering a request. More... | |
const std::vector< Protocols::ForeignToplevelList::RForeignToplevelHandle * > | foreignHandles () const noexcept |
Vector of foreign handles. More... | |
const std::string & | foreignToplevelListIdentifier () const noexcept |
ID used by foreign clients to identify the toplevel. More... | |
Public Member Functions inherited from LBaseSurfaceRole | |
LBaseSurfaceRole (LFactoryObject::Type type, LResource *resource, LSurface *surface, UInt32 roleId) noexcept | |
Constructor of LBaseSurfaceRole class. More... | |
~LBaseSurfaceRole () | |
The LBaseSurfaceRole class destructor. More... | |
UInt32 | roleId () const noexcept |
Role ID. More... | |
LSurface * | surface () const noexcept |
Returns the surface that has acquired the role provided in the constructor. More... | |
LResource * | resource () const |
Returns the Wayland resource for this role given in the constructor. More... | |
LClient * | client () const noexcept |
Client owner of the surface role. More... | |
Public Member Functions inherited from LFactoryObject | |
Type | factoryObjectType () const noexcept |
Gets the base factory object type. More... | |
Public Member Functions inherited from LObject | |
LObject (const LObject &) noexcept | |
Copy constructor. More... | |
LObject & | operator= (const LObject &) noexcept |
Assignment operator (each object has its own individual LWeak reference count). More... | |
void | setUserData (UIntPtr data) const noexcept |
Store an unsigned integer value/pointer. More... | |
UIntPtr | userData () const noexcept |
Retrieves the stored unsigned integer value/pointer. More... | |
Public Attributes | |
LRect | prevRect |
Auxiliary previous rect. More... | |
Virtual Methods | |
virtual const LPoint & | rolePos () const override |
Position of the surface according to the role. More... | |
virtual void | configureRequest () |
Configuration request. More... | |
virtual void | atomsChanged (LBitset< AtomChanges > changes, const Atoms &prevAtoms) |
Notifies a change in atomic properties. More... | |
virtual void | startMoveRequest (const LEvent &triggeringEvent) |
Client request to initiate an interactive move session. More... | |
virtual void | startResizeRequest (const LEvent &triggeringEvent, LBitset< LEdge > edge) |
Client request to initiate an interactive resize session. More... | |
virtual void | activateRequest () |
Request to activate. More... | |
virtual void | setMaximizedRequest () |
Request to maximize. More... | |
virtual void | unsetMaximizedRequest () |
Request to unmaximize. More... | |
virtual void | setFullscreenRequest (LOutput *destOutput) |
Request to set fullscreen mode. More... | |
virtual void | unsetFullscreenRequest () |
Request to unset fullscreen mode. More... | |
virtual void | setMinimizedRequest () |
Minimize request. More... | |
virtual void | unsetMinimizedRequest () |
Unminimize request. More... | |
virtual void | closeRequest () |
Close request. More... | |
virtual bool | foreignControllerFilter (Protocols::ForeignToplevelManagement::GForeignToplevelManager *manager) |
Foreign toplevel controller filter. More... | |
virtual bool | foreignHandleFilter (Protocols::ForeignToplevelList::GForeignToplevelList *foreignList) |
Filter for foreign toplevel handle requests. More... | |
virtual void | showWindowMenuRequest (const LEvent &triggeringEvent, Int32 x, Int32 y) |
Show window menu request. More... | |
virtual void | titleChanged () |
Notifies a change in the title string. More... | |
virtual void | appIdChanged () |
Notifies a change in the App ID string. More... | |
virtual void | preferredDecorationModeChanged () |
Notifies the client has changed its preferred decoration mode. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from LBaseSurfaceRole | |
virtual bool | acceptCommitRequest (CommitOrigin origin) |
Asks if the surface commit should be processed. More... | |
virtual void | handleSurfaceBufferAttach (wl_resource *buffer, Int32 x, Int32 y) |
Notifies a new surface buffer attachment. More... | |
virtual void | handleSurfaceOffset (Int32 x, Int32 y) |
Notifies a surface buffer offset change. More... | |
virtual void | handleParentCommit () |
Notifies a parent surface commit. More... | |
virtual void | handleParentMappingChange () |
Notifies when the mapping state of the parent surface changes. More... | |
Protected Member Functions inherited from LObject | |
LObject () noexcept=default | |
Constructor of the LObject class. More... | |
virtual | ~LObject () noexcept |
Destructor of the LObject class. More... | |
void | notifyDestruction () noexcept |
Notifies the object destruction. More... | |
Protected Attributes inherited from LBaseSurfaceRole | |
LPoint | m_rolePos |
Variable that stores the surface position given the role. More... | |
Toplevel role for surfaces.
The toplevel surface role represents typical desktop windows that usually have a title and buttons to close, minimize, and maximize.
The toplevel role is part of the XDG Shell protocol.
When a client wants to map an LToplevelRole surface, it triggers a configureRequest(), where the compositor is expected to define the size, state, bounds, and other properties of the toplevel using different configure methods, such as configureSize(), configureState(), configureBounds(), etc.
The configuration is not applied immediately, the compositor must wait for the client to ACK the changes through the atomsChanged() event which is also triggered whenever one or more properties of the atoms() struct change, allowing to access previous values as well.
Depending on the flags set with configureCapabilities(), clients can request to minimize or change the state() of the toplevel to Maximized or Fullscreen through setMinimizedRequest(), set / unsetMaximizedRequest() and set / unsetFullscreenRequest(). The compositor is then expected to minimize or properly configure the state and size, but it's free to ignore the requests if desired.
Requests, including those previously mentioned as well as unsetMinimizedRequest()
, activateRequest()
, and closeRequest()
, can be triggered by external clients through the Wlr Foreign Toplevel Management and the XDG Activation protocols. For a comprehensive understanding of this functionality, please refer to the LForeignToplevelController and LActivationTokenManager classes documentation.
Clients can request to start interactive move and resize sessions through startMoveRequest() and startResizeRequest(). To properly handle such requests, each toplevel has an auxiliary moveSession() and resizeSession() which can handle the request for you and constrain the toplevel to the available geometry of outputs (LOutput::availableGeometry()) or to custom constraints specified by you. These are simply auxiliary and you are free to not use them if desired.
By default, all clients draw their own decorations on the toplevel surface, such as shadows, and the windowGeometry() property indicates which part of the surface are decorations and which are the actual window content.
Some clients also supportServerSideDecorations() (SSD). To enable SSD, the compositor must send a configureDecorationMode() with the ServerSide value.
When the decorationMode() changes to ServerSide, the client does not draw any decorations, and the windowGeometry() equals the entire surface size.
If the compositor draws additional elements that are meant to be part of the geometry (such as a title bar), the setExtraGeometry() method can be employed, which allows for proper positioning of the toplevel and constraining it during interactive sessions.
The toplevel position can be set with LSurface::setPos(). The default implementation of rolePos() then returns the given position minus the decoration part of windowGeometry() and adds the top and left margins of extraGeometry().
struct Louvre::LToplevelRole::Atoms |
Atomic properties.
This struct contains all LToplevelRole
properties that should be handled simultaneously during an atomsChanged()
event.
Class Members | ||
---|---|---|
LBitset< State > | state | LToplevelRole::state() |
LRect | windowGeometry | LToplevelRole::windowGeometry() |
LSize | minSize | LToplevelRole::minSize() |
LSize | maxSize | LToplevelRole::maxSize() |
LSize | bounds | LToplevelRole::bounds() |
LBitset< Capabilities > | capabilities | LToplevelRole::capabilities() |
DecorationMode | decorationMode | LToplevelRole::decorationMode() |
UInt32 | serial | LToplevelRole::serial() |
struct Louvre::LToplevelRole::Configuration |
Configuration parameters sent to the client.
Class Members | ||
---|---|---|
LBitset< State > | state |
|
LSize | size |
Size of the toplevel without decorations
|
LSize | bounds |
|
LBitset< Capabilities > | capabilities |
|
DecorationMode | decorationMode | |
UInt32 | serial |
|
Flags indicating the possible states of a Toplevel.
Enumerator | |
---|---|
NoState | No state. |
Maximized | Maximized. |
Fullscreen | Fullscreen mode. |
Resizing | In interactive resizing. |
Activated | Activated (its decorations stand out from others) Only a single toplevel can be activated at a time.
|
TiledLeft | Tiled left (since 2) |
TiledRight | Tiled right (since 2) |
TiledTop | Tiled top (since 2) |
TiledBottom | Tiled bottom (since 2) |
Suspended | Suspended (since 6) |
enum DecorationMode : UInt32 |
enum AtomChanges : UInt32 |
Flags indicating which atomic properties have changed during an atomsChanged() event.
Enumerator | |
---|---|
WindowGeometryChanged | Indicates windowGeometry() changed. |
MinSizeChanged | Indicates minSize() changed. |
MaxSizeChanged | Indicates maxSize() changed. |
StateChanged | Indicates state() changed. |
BoundsChanged | Indicates bounds() changed. |
CapabilitiesChanged | Indicates capabilities() changed. |
DecorationModeChanged | Indicates decorationMode() changed. |
SerialChanged | Indicates serial() changed. |
enum Capabilities : UInt8 |
Compositor capabilities flags.
Flags indicating supported compositor features, notified to the client through the configureCapabilities() method.
Enumerator | |
---|---|
WindowMenuCap | When set, the toplevel can trigger showWindowMenuRequest(). |
MaximizeCap | When set, the toplevel can trigger setMaximizedRequest() and unsetMaximizedRequest(). |
FullscreenCap | When set, the toplevel can trigger setFullscreenRequest() and unsetFullscreenRequest(). |
MinimizeCap | When set, the toplevel can trigger setMinimizedRequest(). |
|
noexcept |
Constructor of the LToplevelRole class.
params | Internal parameters provided in LCompositor::createObjectRequest(). |
|
inline |
Destructor of the LToplevelRole class.
Invoked after LCompositor::onAnticipatedObjectDestruction().
|
noexcept |
Find configuration by serial number.
nullptr
.
|
inlinenoexcept |
Pending configuration.
This struct holds the last configuration parameters assigned with configureState(), configureSize(), configureBounds(), etc.
The pending configuration parameters are sent to the client once per Louvre main loop iteration only if one of the configure variants was called.
The pending serial is updated at most once per loop iteration if a configure was done.
If the pending configuration serial is equal to serial() it means the last configuration was ACK by the client and there is no pending configuration.
Configure the toplevel state.
Asks the client to configure the toplevel with the given states and stores the flags in pendingConfiguration().
The state is not applied immediately, see atomsChanged() and state().
flags | The state flags to set. |
|
inlinenoexcept |
Configure the toplevel size.
Asks the client to configure the toplevel with the given size and stores it in pendingConfiguration().
The size is not applied immediately, see atomsChanged() and windowGeometry().
size | The size is in surface coordinates and does not include decorations. If either width or height is 0, the client is free to pick its own size. |
Configure the toplevel size.
|
inlinenoexcept |
Configure the toplevel decoration mode.
Asks the client to configure the toplevel with the given decoration mode and stores it in pendingConfiguration().
The decoration mode is not applied immediately, see atomsChanged() and decorationMode().
mode | The decoration mode. |
|
inlinenoexcept |
Notifies the toplevel about the compositor's capabilities.
Informs the toplevel which Capabilities are supported by the compositor and stores them in pendingConfiguration().
For example, if the MaximizeCap is not available, clients should hide the maximize button in their decorations. Additionally, requests such as setMaximizedRequest() and unsetMaximizedRequest() will not be triggered.
The capabilities are not applied immediately, see atomsChanged() and capabilities().
All capabilities are enabled by default.
caps | The supported Capabilities flags. |
|
inlinenoexcept |
Asks the client to constrain its size to the specified bounds.
Requests the client to prevent assigning a size to the toplevel surface larger than the given bounds, for example, to prevent exceeding the available geometry of an output.
The bounds are stored in pendingConfiguration() and not applied immediately, see atomsChanged() and bounds().
bounds | The suggested maximum size. Setting a component to 0 disables the constraint for that component. |
Asks the client to constrain its size to the specified bounds.
|
inlinenoexcept |
Current atomic properties.
This struct contains all the current toplevel atomic properties, which are updated each time atomsChanged() is triggered.
The current properties can also be accessed via aliases such as windowGeometry(), state(), bounds(), etc.
Current toplevel state.
Flags representing the current toplevel State.
The state flags can also be checked via aliases such as activated(), maximized(), fullscreen(), etc.
Returns the states supported by the toplevel.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
Checks if the toplevel state() includes the Fullscreen flag.
true
if the flag is present, false
otherwise.
|
inlinenoexcept |
Checks if the toplevel state() includes any of the tiled flags.
true
if any tiled flag is present, false
otherwise.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
Window geometry in surface coordinates.
The window geometry is a rect within the toplevel's surface that excludes its decorations (typically shadows).
|
inlinenoexcept |
Sets extra geometry margins.
This optional method allows you to modify the extraGeometry()
property, providing additional margins for each toplevel edge to be considered part of the geometry. For example, when using server-side decorations, the compositor could draw a custom title bar or borders that are not part of the client surfaces. This method allows you to define those sizes and avoids the need to override rolePos()
, the move and resizing constraints, and other default implementations such as LOutput::geometryChanged().
windowGeometry()
property and the functioning of configureSize()
.margins | Left, top, right, bottom margins. |
|
inlinenoexcept |
|
inlinenoexcept |
Gets the minimum size of the toplevel in surface coordinates.
Components with a value of 0 indicate the limit is disabled.
|
inlinenoexcept |
Gets the maximum size of the toplevel in surface coordinates.
Components with a value of 0 indicate the limit is disabled.
|
inlinenoexcept |
|
noexcept |
Constraints during move/resize sessions.
Returns the left, top, right, and bottom constraints in global-compositor coordinates during a moveSession() and resizeSession() so that the toplevel stays within the given LOutput::availableGeometry(). See LToplevelMoveSession::setConstraints() and LToplevelResizeSession::setConstraints()
includeExtraGeometry | If true , extraGeometry() is considered. |
|
inlinenoexcept |
Current bounds.
Suggested size constraints, notified to the client via configureBounds().
|
inlinenoexcept |
Current capabilities.
Flags representing the Capabilities supported by the compositor, as notified to the client via configureCapabilities().
|
inlinenoexcept |
The current decoration mode.
|
inlinenoexcept |
Gets the preferred decoration mode set by the client.
|
inlinenoexcept |
Check if the toplevel supports server-side decorations.
|
inlinenoexcept |
Last configuration serial ACK by the client.
|
noexcept |
Sets the exclusive output hint.
This is an optional hint that can be used to keep a reference of in which LOutput
a toplevel is positioned while maximized or in fullscreen mode.
The default implementation of LOutput::paintGL()
uses this information to prevent displaying the given toplevel on other outputs.
output | The given output or nullptr to unset. |
|
inlineoverridevirtual |
Exclusive output hint.
Returns the exclusive output hint set with setExclusiveOutput(), or nullptr
if unset.
Reimplemented from LBaseSurfaceRole.
|
inlinenoexcept |
Utility for handling interactive moving sessions.
|
inlinenoexcept |
Utility for handling interactive resizing sessions.
RXdgToplevel * xdgToplevelResource | ( | ) | const |
xdg_toplevel resource from the XDG Shell protocol.
RXdgSurface * xdgSurfaceResource | ( | ) | const |
xdg_surface resource from the XDG Shell protocol.
|
inlinenoexcept |
Gets the application ID associated with the toplevel window.
|
inlinenoexcept |
Gets the window title of the toplevel.
|
noexcept |
Closes the toplevel.
Requests the client to close the toplevel (equivalent to pressing the close button on the window).
|
inlinenoexcept |
Vector of foreign controllers.
|
inlinenoexcept |
LForeignToplevelController triggering a request.
If this method does not return nullptr
during a state-changing request, it means it is being triggered by the specified LForeignToplevelController::client().
|
inlinenoexcept |
Vector of foreign handles.
A vector containing all the handles used by foreign clients to identify this toplevel.
|
inlinenoexcept |
ID used by foreign clients to identify the toplevel.
This ID is used by foreign clients using the Foreign Toplevel List protocol (see foreignHandleFilter()
for details).
The string is initially empty and is updated after the toplevel is mapped or re-mapped.
|
overridevirtual |
Position of the surface according to the role.
Override this virtual method if you need to define your own logic for positioning the toplevel.
The default implementation returns the position set with LSurface::setPos() minus the decoration part of windowGeometry() and adds the top and left margins of extraGeometry().
Implements LBaseSurfaceRole.
|
virtual |
Configuration request.
This request is triggered each time the client intends to map the toplevel surface.
|
virtual |
Notifies a change in atomic properties.
This event is triggered each time one or more of the atoms() change.
changes | Flags indicating which properties in atoms() have changed. |
prevAtoms | Structure containing the previous values of atoms(). |
|
virtual |
Client request to initiate an interactive move session.
The default implementation utilizes the moveSession() utility to handle the session, and ignores it if the toplevel is in Fullscreen mode.
The triggering event helps differentiate whether it is a pointer, touch, or other type of session.
triggeringEvent | The event that triggered the move session. |
Client request to initiate an interactive resize session.
The default implementation utilizes the resizeSession() utility to handle the session, and ignores it if the toplevel is in Fullscreen mode.
The triggering event helps differentiate whether it is a pointer, touch, or other type of session.
triggeringEvent | The event that triggered the resize session. |
edge | The edge or corner being dragged. |
|
virtual |
Request to activate.
Triggered by a an LActivationTokenManager::token() or requesterController() expecting the compositor to configure the toplevel with the Activated state.
|
virtual |
Request to maximize.
Triggered by the client or a requesterController() expecting the compositor to configure the toplevel with the Maximized state. See configureState().
|
virtual |
Request to unmaximize.
Triggered by the client or a requesterController() expecting the compositor to configure the toplevel without the Maximized state. See configureState().
|
virtual |
Request to set fullscreen mode.
Triggered by the client or a requesterController() expecting the compositor to configure the toplevel with the Fullscreen state. See configureState().
destOutput | Output on which the client wishes to display the toplevel. If nullptr the compositor must choose the output. |
|
virtual |
Request to unset fullscreen mode.
Triggered by the client or a requesterController() expecting the compositor to configure the toplevel without the Fullscreen state. See configureState().
|
virtual |
Minimize request.
Triggered by the client or a requesterController() expecting the compositor to minimize the toplevel window.
|
virtual |
Unminimize request.
Triggered by a requesterController() expecting the compositor to unminimize the toplevel window.
|
virtual |
Close request.
Triggered by a requesterController() expecting the compositor to close() the toplevel window.
|
virtual |
Foreign toplevel controller filter.
This method allows you to filter which foreign clients can control this toplevel. See LForeignToplevelController for more details.
If accepted, a new LForeignToplevelController object will be added to the foreignControllers() vector.
manager | The GForeignToplevelManager resource requesting to control the toplevel. |
true
to allow the foreign client to control the toplevel, false
to deny it.
|
virtual |
Filter for foreign toplevel handle requests.
This method allows you to control which foreign clients can obtain a handle for this toplevel.
The handle enables clients to identify other clients' toplevels and, in conjunction with other protocols, perform operations such as selecting which toplevel to capture using protocols like Image Copy Capture.
If accepted, a new ForeignToplevelList::RForeignToplevelHandle
object will be added to the foreignHandles() vector.
Alternatively, you can disable the protocol for specific clients using LCompositor::globalsFilter().
This protocol can be tested with clients like lswt.
foreignList | The GForeignToplevelList resource requesting to get a handle. |
true
to allow the foreign client to obtain a handle for this toplevel, false
to deny it.Show window menu request.
Triggered by the client expecting the compositor to display a popup menu with options for minimizing, maximizing and/or turning the toplevel into fullscreen mode.
|
virtual |
Notifies a change in the title string.
|
virtual |
Notifies a change in the App ID string.
|
virtual |
Notifies the client has changed its preferred decoration mode.
LRect prevRect |
Auxiliary previous rect.
This auxiliary rect is used by the default implementation to save the position and size of the toplevel window before it is maximized or switched to fullscreen, allowing it to be restored later.