summaryrefslogtreecommitdiff
path: root/protocol
diff options
context:
space:
mode:
authorJonas Ådahl <jadahl@gmail.com>2012-08-29 22:13:01 +0200
committerKristian Høgsberg <krh@bitplanet.net>2012-08-31 19:51:49 -0400
commite9d22505495e0017ad80d092f94225d47a38552a (patch)
tree63c8717d07977084a665c8164dae168bea6d7b95 /protocol
parent8de6a1ddae984238c63056ad7f77ff28de39e63e (diff)
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>
Diffstat (limited to 'protocol')
-rw-r--r--protocol/Makefile.am5
-rw-r--r--protocol/workspaces.xml27
2 files changed, 30 insertions, 2 deletions
diff --git a/protocol/Makefile.am b/protocol/Makefile.am
index 22cb2c9b..bf5ef990 100644
--- a/protocol/Makefile.am
+++ b/protocol/Makefile.am
@@ -2,5 +2,6 @@ EXTRA_DIST = \
desktop-shell.xml \
screenshooter.xml \
tablet-shell.xml \
- xserver.xml \
- text.xml
+ xserver.xml \
+ text.xml \
+ workspaces.xml
diff --git a/protocol/workspaces.xml b/protocol/workspaces.xml
new file mode 100644
index 00000000..22f4802b
--- /dev/null
+++ b/protocol/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>