[PATCH] xdg-shell - yet another proposal.

Rafael Antognolli rafael.antognolli at intel.com
Wed Nov 6 18:45:54 PST 2013

Hello all,

I'm trying to summarize part of the discussion in this new patch, but it's not
the final one.

As far as I understood, the goal is to end up with something like this for
keyboard focus:

W = compositor
A, Z = client surfaces

Viewport change:
W to Z: You are deactivated.
W to A: You are activated.
A to W: Do these things.

So, I added "activated" and "deactivated" events, that the compositor can use
to inform clients what they are. And there's a take_focus request that can be
used by a client to ask for activation, but it's up to the compositor to

Regarding the surface fullscreen, maximized, etc, I added surface states as
enum's, that can be set/unset, and events from the compositor to request that a
given state should be set/unset.

For those states that take parameters, I added separate requests for setting
the parameters before setting the state. It should all take place after commit
anyway, so that shouldn't matter much. Take a look at the docs and say what you

I didn't change transient/popup surface types yet, but from what has been said
in the ML thread, I think they also should be surface states now. Correct me if
I'm wrong. Otherwise I'm going to send an updated version with those changes

I also talked to jekstrand (I think) about stacking, will send an updated
version with what I understood from that tomorrow. Should be simple.

Any feedback is appreciated, and thank you guys for the input so far and the

Rafael Antognolli (1):
  xdg_shell: Add a new shell protocol.

 protocol/Makefile.am     |   2 +-
 protocol/xdg-surface.xml | 518 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 519 insertions(+), 1 deletion(-)
 create mode 100644 protocol/xdg-surface.xml


More information about the wayland-devel mailing list