Dnia 2012-02-25, sob o godzinie 10:10 +0000, Przemo Firszt pisze: > Dnia 2012-02-24, pią o godzinie 15:59 +0000, Przemo Firszt pisze: > > Dnia 2012-02-24, pią o godzinie 09:55 -0600, Chris Bagwell pisze: > [..] > > > Sorry. No ideas except: Is this new behavior since changing to > > > Procotol 5 (adding ABS_MISC)? > > > > I'd rather link it with the moment when I realised that my tablet is > > handled by wvdev instead of wacom driver. Fixing the name and switching > > to wacom broke rocker buttons. I'll confirm that. > > OK, lads, I narrowed down the problem (ssh & gdb are really good tools): > > wcmSendButtons (in wcmCommon.c) contains this: > > > /* Tablet PC buttons only apply to penabled devices */ > > if (common->wcmTPCButton && IsStylus(priv)) > > { > > first_button = (buttons <= 1) ? 0 : 1; > > > > /* tip released? release all buttons */ > > if ((buttons & 1) == 0) > > buttons = 0; > > /* tip pressed? send all other button presses */ > > else if ((buttons & 1) != (priv->oldButtons & 1)) > > priv->oldButtons = 0; > > /* other button changed while tip is still down? release > > tip */ > > else if ((buttons & 1) && (buttons != priv->oldButtons)) > > { > > buttons &= ~1; > > first_button = 0; > > } > > } > > If I hover the stylus and press rocker button the condition > (common->wcmTPCButton && IsStylus(priv)) is true. "buttons" equals 2 or > 4 (right or middle button), but tip is not touching the surface, so this > is also true: ((buttons & 1) == 0) and it means that buttons gets > resetted to 0! That doesn't happen for eraser because IsStylus(priv) is > false. > > When the tip is on the surface, buttons works as expected. > > Setting TabletPCButton to off fixes the problem: > > xsetwacom --set "Wacom Intuos4 WL stylus" "TabletPCButton" "off" > > but I belive that TabletPCButton should be "off" by default for Intuos4 WL. > > I'm tracking down why it's ON by defauls (if you know why, let me know!) >
Next step: in wcmXCommand.c function wcmSetProperty(DeviceIntPtr dev, Atom property, XIPropertyValuePtr prop, BOOL checkonly) is called by xorg(?>>) with "property = prop_hover" and "checkonly = 0", so it is flipping TabletPCButton to "on" The question why remains :-) -- Przemo ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Linuxwacom-devel mailing list Linuxwacom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel