[RFC PATCH 06/12] tablet-shell: Applications can run on tablet

Pekka Paalanen ppaalanen at gmail.com
Mon Aug 6 23:36:59 PDT 2012

On Tue, 07 Aug 2012 09:35:44 +0800
Juan Zhao <juan.j.zhao at linux.intel.com> wrote:

> Thanks, Tiago. :)
> It's helpful.
> On Mon, 2012-08-06 at 11:35 +0300, Tiago Vignatti wrote:
> > Hi Juan,
> > 
> > There's an intentional separation of the wl_shell_surface_interface
> > on 
> > its own (desktop) shell file. Its purpose is for building full
> > desktop 
> > interfaces, in principle, and in fact things like _move, _resize, 
> > _set_title and etc don't make sense on tablet style of interface. 
> Yes, and to make the toy toolkit client, and efl clients also workable
> in tablet-shell, we need to provide an interface related to them.
> > So 
> > what you're suggesting here doesn't make sense either when a client 
> > would be replying to a fullscreen event, because what we want is to
> > all 
> > tablet clients be fullscreen. We need is just a way to configure the 
> > clients always like that and I believe this code is already in place
> > on 
> > tablet-shell.c.
> Most of the clients have a state when it was fullscreen, and they may
> have different responses in this condition. Thinking of this, so we
> added an send_fullscreen event to the client.


I didn't quite understand Tiago's reply, but maybe the following helps.

Looking at the tablet-shell.xml protocol, I wonder if it is missing an
interface. The interface tablet_shell seems to be private for the
ux-daemon (tablet-shell client), but there is no interface for normal
clients. I doubt that any normal client should be able to set e.g.
lockscreen - or maybe access control is per-request? This will probably
cause some confusion.

src/tablet-shell.c actually has this comment on creating the
tablet_shell global object:
/* FIXME: This will make the object available to all clients. */

Let's call the generic tablet shell client interface tablet_generic for
this discussion. (All the shell interface names seem to be a little out
of place, starting with wl_shell and desktop_shell.)

When a client initialises, the set of advertised global interfaces will
contain either wl_shell or tablet_generic, or at least the client should
bind to only one of the two. If it binds to tablet_generic, if knows it
has to be full-screen always, it doesn't need an event to tell it that.
How does it know what size to make its surface, I don't know. Looking
at outputs or add a configure event?

The last real changes to the tablet protocol are from May 2011, so I
think it needs an overhaul.


More information about the wayland-devel mailing list