diff options
author | Jonas Ådahl <jadahl@gmail.com> | 2012-08-29 22:13:01 +0200 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2012-08-31 19:51:49 -0400 |
commit | e9d22505495e0017ad80d092f94225d47a38552a (patch) | |
tree | 63c8717d07977084a665c8164dae168bea6d7b95 /protocol | |
parent | 8de6a1ddae984238c63056ad7f77ff28de39e63e (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.am | 5 | ||||
-rw-r--r-- | protocol/workspaces.xml | 27 |
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> |