On 04/11/2014 04:47 PM, Jussi Laako wrote:
> On 11.4.2014 2:14, Carsten Haitzler (The Rasterman) wrote:
>> 4. once you do these, you'll know why. (it's an essential part of
>> input routing
>> and focus management, as well as shortcuts, mouse pointer control and
>> routing
>> - only display server knows WHERE the mouse or touch point is pointing
>> to on
>> screen, and routes the mouse events appropriately).
> 
> Route control and data are two separate things. In order to control data
> flow you don't actually have to see the data. Just like uploading
> routing table to a hardware based route matrix.

you route on an event by event basis based on the content of the event
and the requests from clients plus current display state. that's how you
manage key grabs.

> Display server knows that application X has topmost window at (x, y, w,
> h) so it tells mouse routing matrix to route translated mouse events
> from input device to the application when mouse position is within these
> coordinates. It shouldn't actually know where the mouse is.

and what when the window is rotated by 30 degrees, or wrapped around a
3d mesh of a bunny rabbit? and the only one who knows the mesh is the
compositor/display server? yes - that's wayland. it allows this and is
designed to be able to do it and work correctly.

> Display server also knows that application X has keyboard focus, so it
> tells keyboard route matrix to route keyboard input events from input
> device to the application. Display server doesn't need to see the actual
> commands.
> 
> Shortcuts can be implemented using a special global meta key filter in
> the input layer driver and route those to a special shortcut key handler
> device node where a special shortcut handler process sits, none of the
> normal keyboard input events would be routed there.

so you just move stuff from display server into kernel, bloating the
kernel with policy it isn't interested in and is better handled in
userspace. and that policy can get increasingly more complex as time
goes on to handle all the event routing situations - see above with 3d
bunny mesh.

> Note that the route matrix can either reside within separate user space
> process, or could be just a simple implementation right in the kernel
> input layer.
> 
> You can see this kind of software design pattern for example in the
> Postfix email server, where each subtask is split to a separate least
> privileged process.
> 
> _______________________________________________
> Dev mailing list
> Dev@lists.tizen.org
> https://lists.tizen.org/listinfo/dev
> 

-- 
The above message is intended solely for the named addressee and may
contain trade secret, industrial technology or privileged and
confidential information otherwise protected under applicable law
including the Unfair Competition Prevention and Trade Secret Protection
Act. Any unauthorized dissemination, distribution, copying or use of the
information contained in this communication is strictly prohibited. If
you have received this communication in error, please notify the sender
by email and delete this communication immediately.

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Dev mailing list
Dev@lists.tizen.org
https://lists.tizen.org/listinfo/dev

Reply via email to