Input transformations: Compiz

Joel Bosveld joel.bosveld at gmail.com
Wed Jan 21 20:06:14 PST 2009


On Thu, Jan 22, 2009 at 3:58 AM, Bipin George Mathew <bipingm at gmail.com>wrote:

> Thanks Joel. This mostly clear things. btw, where did is this comment
> found? I grep'ed through the compiz 0.7.8 code (
> http://packages.ubuntu.com/source/intrepid/compiz) and could not find such
> a comment. Beryl's code perhaps?


http://gitweb.compiz-fusion.org/?p=fusion/plugins/ezoom;a=blob;f=ezoom.c;h=5749c17e2e1fbe907f9f64e922acea59fd8f5ab7;hb=HEAD

Joel.


> Chris,
>
> You mentioned that the XServer needs rework - do you know what the nature
> of the rework is and why it is needed?
>

> Thanks!
> -Bipin
>
>
> On Tue, Jan 20, 2009 at 8:01 PM, Joel Bosveld <joel.bosveld at gmail.com>wrote:
>
>> On Wed, Jan 21, 2009 at 11:57 AM, Bipin George Mathew <bipingm at gmail.com>wrote:
>>
>>> Given that the upstream compiz does not use David's APIs, how is the
>>> zoom plugin able to translate the co-ordinates for ButtonPress?
>>>
>>> While looking at the compiz code, I did find XGrabButton was called on
>>> each window created to intercept the events; but I was expecting an
>>> XSendEvent with the ButtonPressMask to be called with the transformed
>>> co-ordinates- which I not find. Also, I read on the mailinglist that
>>> clients can ignore synth events of XSendEvent.
>>> Any pointers on how this translation is done?
>>>
>>
>>
>> From the comments at the top of the code:
>>
>>  Note on input
>>
>>  We can not redirect input yet, but this plug-in offers two fundamentally different
>> approaches to achieve input enabled zoom:
>>
>>
>> 1. Always have the zoomed area be in sync with the mouse cursor. This
>> binds the zoom area to the mouse position at any given time. It allows using
>> the original mouse cursor drawn by X, and is technically very safe. First
>> used in Beryl's inputzoom.
>>
>>
>> 2. Hide the real cursor and draw our own where it would be when zoomed
>> in. This allows us to navigate with the mouse without constantly moving
>> the zoom area. This is fairly close to what we want in the end when input
>> redirection is available.
>>
>>
>> This second method has one huge issue, which is bugged XFixes. After
>> hiding the cursor once with XFixes, some mouse cursors will simply be invisible.
>> The Firefox loading cursor being one of them. An other minor annoyance is
>> that mouse sensitivity seems to increase as
>> you zoom in, since the mouse isn't really zoomed at all.
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.x.org/archives/xorg/attachments/20090122/288927fe/attachment.html>


More information about the xorg mailing list