shell: Introduce workspace manager interface
The workspace manager interface purpose is to provide clients with control and knowledge about the current workspace state. Initially only one function and one event exists; moving a surface and state updated event. A workspace is represented as an index in a 1 dimensional array. A client keeps track of the state by being broadcasted events when the state changes, currently limited to current workspace or number of workspaces available. A client can send an asynchronous request to the manager asking to move a surface to workspace identified by an index. It is up to the shell to actually move it. Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
This commit is contained in:
committed by
Kristian Høgsberg
parent
8de6a1ddae
commit
e9d2250549
@@ -2,5 +2,6 @@ EXTRA_DIST = \
|
||||
desktop-shell.xml \
|
||||
screenshooter.xml \
|
||||
tablet-shell.xml \
|
||||
xserver.xml \
|
||||
text.xml
|
||||
xserver.xml \
|
||||
text.xml \
|
||||
workspaces.xml
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
<protocol name="workspaces">
|
||||
|
||||
<interface name="workspace_manager" version="1">
|
||||
<description summary="workspaces manager">
|
||||
An interface for managing surfaces in workspaces.
|
||||
</description>
|
||||
|
||||
<request name="move_surface">
|
||||
<description summary="move surface to workspace">
|
||||
Move the given surface to the specified workspace.
|
||||
</description>
|
||||
<arg name="surface" type="object" interface="wl_surface"/>
|
||||
<arg name="workspace" type="uint"/>
|
||||
</request>
|
||||
|
||||
<event name="state">
|
||||
<description summary="workspace state">
|
||||
The current workspace state, such as current workspace and workspace
|
||||
count, has changed.
|
||||
</description>
|
||||
<arg name="current" type="uint"/>
|
||||
<arg name="count" type="uint"/>
|
||||
</event>
|
||||
|
||||
</interface>
|
||||
|
||||
</protocol>
|
||||
Reference in New Issue
Block a user