No subject
Tue Jan 20 19:19:07 PST 2009
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.
--000e0cd14d66456ddf0460f635d9
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
<div class=3D"gmail_quote">On Wed, Jan 21, 2009 at 11:57 AM, Bipin George M=
athew <span dir=3D"ltr"><<a href=3D"mailto:bipingm at gmail.com">bipingm at gm=
ail.com</a>></span> wrote:<br><blockquote class=3D"gmail_quote" style=3D=
"border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padd=
ing-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=3D"Content-Type" content=3D"text/html; charset=3Dutf-8"><=
meta name=3D"ProgId" content=3D"Word.Document"><meta name=3D"Generator" con=
tent=3D"Microsoft Word 12"><meta name=3D"Originator" content=3D"Microsoft W=
ord 12"><link rel=3D"File-List" href=3D"file:///C:%5CDOCUME%7E1%5CPOSITR%7E=
1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"><link rel=3D=
"themeData" href=3D"file:///C:%5CDOCUME%7E1%5CPOSITR%7E1%5CLOCALS%7E1%5CTem=
p%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"><link rel=3D"colorSchemeMappin=
g" href=3D"file:///C:%5CDOCUME%7E1%5CPOSITR%7E1%5CLOCALS%7E1%5CTemp%5Cmsoht=
mlclip1%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=3D"MsoPlainText"><span style=3D"font-family: "Courier New&quo=
t;;" lang=3D"EN-AU"><span style=3D""></span> Note on input<br>
<span style=3D""></span><br>
<span style=3D""></span> We can not redirect input yet, but
this plug-in offers two fundamentally <span style=3D""></span>different app=
roaches to achieve input
enabled zoom:</span></p><p class=3D"MsoPlainText"><span style=3D"font-famil=
y: "Courier New";" lang=3D"EN-AU"><br></span></p><p class=3D"MsoP=
lainText"><span style=3D"font-family: "Courier New";" lang=3D"EN-=
AU"><span style=3D""></span>1.<span style=3D""></span> Always have the zoom=
ed 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=3D""></span>the original mouse cursor drawn by X,
and is technically very safe. <span style=3D""></span>First used in Beryl&#=
39;s inputzoom.
<span style=3D""></span></span></p><p class=3D"MsoPlainText"><br><span styl=
e=3D"font-family: "Courier New";" lang=3D"EN-AU"><span style=3D""=
></span></span></p><p class=3D"MsoPlainText"><span style=3D"font-family: &q=
uot;Courier New";" lang=3D"EN-AU"><span style=3D""></span>2. <span sty=
le=3D""></span>Hide the real cursor and draw our own
where it would be when zoomed in. <span style=3D""></span>This allows us to=
navigate with the
mouse without constantly moving the <span style=3D""></span>zoom area. This=
is fairly close to
what we want in the end when input redirection is available.</span></p><p c=
lass=3D"MsoPlainText"><span style=3D"font-family: "Courier New";"=
lang=3D"EN-AU"><br></span></p><p class=3D"MsoPlainText"><span style=3D"fon=
t-family: "Courier New";" lang=3D"EN-AU">
<span style=3D""></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=3D""></span>invisible. The Fi=
refox loading cursor
being one of them. <span style=3D""></span>An other minor annoyance is that=
mouse
sensitivity seems to increase as<br>
<span style=3D""></span>you zoom in, since the mouse isn't
really zoomed at all.<br>
<span style=3D""></span><br>
</span></p>
<br>
--000e0cd14d66456ddf0460f635d9--
More information about the xorg
mailing list