<div class="gmail_quote">On Wed, Jan 21, 2009 at 11:57 AM, Bipin George Mathew <span dir="ltr"><<a href="mailto:bipingm@gmail.com">bipingm@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Given that the upstream compiz does not use David's APIs, how is the<br>
zoom plugin able to translate the co-ordinates for ButtonPress?<br>
<br>
While looking at the compiz code, I did find XGrabButton was called on<br>
each window created to intercept the events; but I was expecting an<br>
XSendEvent with the ButtonPressMask to be called with the transformed<br>
co-ordinates- which I not find. Also, I read on the mailinglist that<br>
clients can ignore synth events of XSendEvent.<br>
Any pointers on how this translation is done?<br>
</blockquote></div><br><br>From the comments at the top of the code:<br><br><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 12"><meta name="Originator" content="Microsoft Word 12"><link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CPOSITR%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"><link rel="themeData" href="file:///C:%5CDOCUME%7E1%5CPOSITR%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"><link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5CPOSITR%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"><style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;
        mso-font-charset:0;
        mso-generic-font-family:roman;
        mso-font-pitch:variable;
        mso-font-signature:-1610611985 1107304683 0 0 159 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;
        mso-font-charset:0;
        mso-generic-font-family:swiss;
        mso-font-pitch:variable;
        mso-font-signature:-1610611985 1073750139 0 0 159 0;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;
        mso-font-charset:0;
        mso-generic-font-family:modern;
        mso-font-pitch:fixed;
        mso-font-signature:-1610611985 1073750091 0 0 159 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {mso-style-unhide:no;
        mso-style-qformat:yes;
        mso-style-parent:"";
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:10.0pt;
        margin-left:0cm;
        line-height:115%;
        mso-pagination:widow-orphan;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-ascii-font-family:Calibri;
        mso-ascii-theme-font:minor-latin;
        mso-fareast-font-family:Calibri;
        mso-fareast-theme-font:minor-latin;
        mso-hansi-font-family:Calibri;
        mso-hansi-theme-font:minor-latin;
        mso-bidi-font-family:"Times New Roman";
        mso-bidi-theme-font:minor-bidi;
        mso-ansi-language:EN-AU;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.5pt;
        font-family:Consolas;
        mso-fareast-font-family:Calibri;
        mso-fareast-theme-font:minor-latin;
        mso-bidi-font-family:"Times New Roman";
        mso-bidi-theme-font:minor-bidi;
        mso-ansi-language:EN-AU;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-unhide:no;
        mso-style-locked:yes;
        mso-style-link:"Plain Text";
        mso-ansi-font-size:10.5pt;
        mso-bidi-font-size:10.5pt;
        font-family:Consolas;
        mso-ascii-font-family:Consolas;
        mso-hansi-font-family:Consolas;
        mso-ansi-language:EN-AU;}
.MsoChpDefault
        {mso-style-type:export-only;
        mso-default-props:yes;
        mso-ascii-font-family:Calibri;
        mso-ascii-theme-font:minor-latin;
        mso-fareast-font-family:Calibri;
        mso-fareast-theme-font:minor-latin;
        mso-hansi-font-family:Calibri;
        mso-hansi-theme-font:minor-latin;
        mso-bidi-font-family:"Times New Roman";
        mso-bidi-theme-font:minor-bidi;}
.MsoPapDefault
        {mso-style-type:export-only;
        margin-bottom:10.0pt;
        line-height:115%;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;
        mso-header-margin:36.0pt;
        mso-footer-margin:36.0pt;
        mso-paper-source:0;}
div.Section1
        {page:Section1;}
-->
</style>

<p class="MsoPlainText"><span style="font-family: "Courier New";" lang="EN-AU"><span style=""></span> Note on input<br>
<span style=""></span><br>
<span style=""></span> We can not redirect input yet, but
this plug-in offers two fundamentally <span style=""></span>different approaches to achieve input
enabled zoom:</span></p><p class="MsoPlainText"><span style="font-family: "Courier New";" lang="EN-AU"><br></span></p><p class="MsoPlainText"><span style="font-family: "Courier New";" lang="EN-AU"><span style=""></span>1.<span style=""></span> 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
<span style=""></span>the original mouse cursor drawn by X,
and is technically very safe. <span style=""></span>First used in Beryl's inputzoom.
<span style=""></span></span></p><p class="MsoPlainText"><br><span style="font-family: "Courier New";" lang="EN-AU"><span style=""></span></span></p><p class="MsoPlainText"><span style="font-family: "Courier New";" lang="EN-AU"><span style=""></span>2. <span style=""></span>Hide the real cursor and draw our own
where it would be when zoomed in. <span style=""></span>This allows us to navigate with the
mouse without constantly moving the <span style=""></span>zoom area. This is fairly close to
what we want in the end when input redirection is available.</span></p><p class="MsoPlainText"><span style="font-family: "Courier New";" lang="EN-AU"><br></span></p><p class="MsoPlainText"><span style="font-family: "Courier New";" lang="EN-AU">
<span style=""></span>This second method has one huge issue,
which is bugged XFixes. After hiding the cursor once with XFixes,
some mouse cursors will simply be <span style=""></span>invisible. The Firefox loading cursor
being one of them. <span style=""></span>An other minor annoyance is that mouse
sensitivity seems to increase as<br>
<span style=""></span>you zoom in, since the mouse isn't
really zoomed at all.<br> 
<span style=""></span><br>
</span></p>

<br>