On Wed, Jan 12, 2011 at 11:07 PM, Peter Hutterer
<peter.hutte...@who-t.net> wrote:
> On Tue, Jan 11, 2011 at 08:07:31PM -0800, Ping Cheng wrote:
>> On Tue, Jan 11, 2011 at 5:52 PM, Chris Bagwell <ch...@cnpbagwell.com> wrote:
>> > On Tue, Jan 11, 2011 at 7:34 PM,  <ch...@cnpbagwell.com> wrote:
>> >> From: Chris Bagwell <ch...@cnpbagwell.com>
>> >>
>> >> wcmRotateAndScaleCoordinates() uses these values to scale
>> >> values based on initialized.  The change to use -1..-1
>> >> caused it to scale to 0 value always and make cursor not
>> >> move.
>> >
>> > Opps, I wrote wrong symptom.  The cursor is over accelerated without
>> > this fix... but the cursor can move.  The cursor not moving still
>> > requires a patch.
>>
>> The original change was made by Peter. I'd like to know if he feels
>> this is the proper way to go.
>
> it's close to being the the right fix, I can see where the current code is
> broken. this is all based on the misunderstanding of relative _behavior_ and
> relative _device_. the touch device is an absolute device with a relative
> behaviour (like touchpads are as well).
>
> is_absolute() will tell us only about the behaviour, but not about the
> device. afaict we don't have any truly relative devices though, even the
> puck tool will use the min/max axis range when in relative mode. Is this
> correct?
>
> if so, the is_absolute() condition can just go away.

Let me explain my logic behind adding the if() in case its not
obvious.  Before you refactored the below code, there was some stuff
that initialized min/max at top of function to MinX/Y,MaxX/Y and why
it didn't have an else statement.  I added else to exactly reproduce
that old logic.

I'm not exactly clear on what virtual area is (is sizeX/Y to reduce
pad size or to abstract out rotation?) so I went safe route of old
logic.  But I'm thinking that if absolute mode needs a virtual area
then there is a pretty good chance relative needs it as well... and so
agree the if() condition can probably go away.  I'll give it a test.

Chris


>
> Cheers,
>  Peter
>>
>> >> This is probably a revert more then bug fix because it seems
>> >> standard behavior to init relative to -1..-1 based on my
>> >> xinput output.  But it needs to be reverted until something
>> >> is done to wcmRotateAndScaleCoordinates().
>> >>
>> >> Signed-off-by: Chris Bagwell <ch...@cnpbagwell.com>
>> >> ---
>> >>  src/xf86Wacom.c |   12 ++++++++++--
>> >>  1 files changed, 10 insertions(+), 2 deletions(-)
>> >>
>> >> diff --git a/src/xf86Wacom.c b/src/xf86Wacom.c
>> >> index 4a07191..5be8409 100644
>> >> --- a/src/xf86Wacom.c
>> >> +++ b/src/xf86Wacom.c
>> >> @@ -280,12 +280,16 @@ wcmInitAxes(DeviceIntPtr pWcm)
>> >>
>> >>        /* first valuator: x */
>> >>        label = XIGetKnownProperty(AXIS_LABEL_PROP_ABS_X);
>> >> -       min = max = -1;
>> >>        if (is_absolute(pInfo))
>> >>        {
>> >>                min = priv->topX;
>> >>                max = priv->sizeX + priv->topX;
>> >>        }
>> >> +       else
>> >> +       {
>> >> +               min = 0;
>> >> +               max = priv->maxX;
>> >> +       }
>> >>        min_res = 0;
>> >>        max_res = priv->resolX;
>> >>        res = priv->resolX;
>> >> @@ -303,12 +307,16 @@ wcmInitAxes(DeviceIntPtr pWcm)
>> >>
>> >>        /* second valuator: y */
>> >>        label = XIGetKnownProperty(AXIS_LABEL_PROP_ABS_Y);
>> >> -       min = max = -1;
>> >>        if (is_absolute(pInfo))
>> >>        {
>> >>                min = priv->topY;
>> >>                max = priv->sizeY + priv->topY;
>> >>        }
>> >> +       else
>> >> +       {
>> >> +               min = 0;
>> >> +               max = priv->maxY;
>> >> +       }
>> >>        min_res = 0;
>> >>        max_res = priv->resolY;
>> >>        res = priv->resolY;
>> >> --
>> >> 1.7.3.4
>

------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to