Hi Casey,

To be fair, the same feature already existed in X11, most notably via the
XShape extension* (think of "xeyes").

This is definitely a usecase for the desktop ; video or audio players, for
example, have made use of this for ages (mostly for looking "cool", which
is not the best motivation, I agree).
For other types of systems, though, I see 2 ways to avoid security problems
:

- on a IVI-type system, the shell can totally prevent that.  IVI-Shell, for
example, has a default "stacking" mode when an application window *never*
overlaps an existing one. Even if you click in a hole, nothing will happen ;
- if you totally control the system, and you decide which applications get
installed (either that they come pre-installed, or they are validated
through an application store), you may want to disallow the publication of
apps  which make use of such a feature. Or, you can restrict the use of the
API itself, via a specific controller layer  (which is totally feasible,
currently, by creating a Weston plugin).

* : http://en.wikipedia.org/wiki/Shape_extension

2014-12-19 19:22 GMT+01:00 Schaufler, Casey <[email protected]>:
>
>  Wow. This looks like a security vulnerability. Imagine an app that
> presents itself as a window with lots of pinholes in it. The holes are too
> small to see, and you end up clicking the app behind it unawares of doing
> so. This seems like a **really bad** idea to this humble observer.
>
>
>
>
>
> *From:* Dev [mailto:[email protected]] *On Behalf Of *Manuel
> Bachmann
> *Sent:* Friday, December 19, 2014 8:35 AM
> *To:* [email protected]
> *Subject:* [Dev] [wayland] Non-rectangular Wayland window, input-through
>
>
>
> Hi folks,
>
> It has been asked recently how to make a non-rectangular Wayland window,
> where input events (mouse clicks, touch events) would go "through" the
> window and be received by windows stacked under it - think of a donut where
> clicking in the center passes through.
>
> The answer consists in using "wl_region" elements together with the
> "wl_input_region" functions. The idea is to create a "wl_region" structure,
> populate it with several rectangles which will determine which parts of the
> surface are clickable, and then call "wl_surface_set_input_region" to make
> it effective.
>
>
>
> Here is a sample code which demonstrates that :
>
>
> http://www.tarnyko.net/repo/wayland-3-shm_surface_input_regions.c
>
>
>
> And a screenshot :
>
> http://www.tarnyko.net/repo/wayland-3-shm_surface_input_regions.png
>
> This is a white rectangle with a hole in the center. Clicking in the hole
> will eventually activate other surfaces (here, a "weston-flower" instance).
>
>
>
>
> --
>
> Regards,
>
> *Manuel BACHMANN*
>
> * Tizen Project VANNES-FR*
>


-- 
Regards,



*Manuel BACHMANN Tizen Project VANNES-FR*
_______________________________________________
Dev mailing list
[email protected]
https://lists.tizen.org/listinfo/dev

Reply via email to