On Wed, Jan 12, 2011 at 10:10:08PM -0800, Ping Cheng wrote: > On Wed, Jan 12, 2011 at 9:07 PM, Peter Hutterer > <[email protected]> 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 <[email protected]> > >> wrote: > >> > On Tue, Jan 11, 2011 at 7:34 PM, <[email protected]> wrote: > >> >> From: Chris Bagwell <[email protected]> > >> >> > >> >> 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. > > Maybe we need to clarify when and where to set which relative/absolute > mode. Obviously, we have mixed two modes here.
aside from device initialisation, the device type doesn't matter anywhere else. and that bit we can hardcode afaict, given the tablets we support. any use of is_absolute() should only refer to the behaviour. coincidentally, we can change is_absolute to directly access the valuator mode in the ValuatorClassRec instead of setting flags, but that's a separate patch. Cheers, Peter > Ping > > >> >> 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 <[email protected]> > >> >> --- > >> >> 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 [email protected] https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
