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
