[PATCH 27/27] Input: Add smooth-scrolling support to GetPointerEvents

Peter Hutterer peter.hutterer at who-t.net
Mon Jun 6 23:22:35 PDT 2011


On Mon, Jun 06, 2011 at 12:20:21PM +0100, Daniel Stone wrote:
> Hi,
> 
> On Sun, Jun 05, 2011 at 08:49:43PM +0200, Simon Thum wrote:
> > On 06/03/2011 05:00 PM, Daniel Stone wrote:
> > > For scroll wheel support, we used to send buttons 4/5 and 6/7 for
> > > horizontal/vertical positive/negative scroll events.  For touchpads, we
> > > really want more fine-grained scroll values.  GetPointerEvents now
> > > accepts both old-school scroll button presses, and new-style scroll axis
> > > events, while emitting both types of events to support both old and new
> > > clients.
> > 
> > I guess apps that want the best support across server generations are
> > supposed to know they can ignore legacy scroll by virtue of the
> > POINTER_EMULATED flag? If yes, shouldn't the flag be always set on
> > either the axis updates or the button events?
> 
> Yeah -- there's a missing inputproto part that I'll send out with the
> second round of patches.  Here's the applicable text:
>      PointerEmulated means that the event has been emulated from another
>      XI 2.x event for legacy client support, and that this event should
>      be ignored if the client listens for these events.  This flag will
>      be set on scroll ButtonPress events (buttons 4, 5, 6 and 7) if a
>      smooth-scrolling event on the Rel Vert Scroll or Rel Horiz Scroll
>      axis events was also generated.
> 
> You'll note that the GetPointerEvents helper does indeed always set
> POINTER_EMULATED on buttons 4, 5, 6 and 7.

if XIPointerEmulated is set on an event, will there be a corresponding
RawEvent? This needs to be pointed out here. If yes, the raw event needs a
flag as well.

Cheers,
  Peter

> > I further guess that the non-raw scroll events will still be adding up,
> > is that intentional?
> 
> Crap, good catch.  Guess that's what you get for playing around with
> smooth scrolling and a bunch of accel changes at the same time ... I'll
> probably have to fix that by adding a new axis mode, I guess (relative
> but not additive).
> 
> Cheers,
> Daniel
 


More information about the xorg-devel mailing list