On Mon, Nov 16, 2015 at 12:02:14PM +0000, Auke Booij wrote: > On 28 October 2015 at 05:34, Peter Hutterer <peter.hutte...@who-t.net> wrote: > > The frame event groups separate pointer events together. The primary > > use-case > > for this at the moment is diagonal scrolling - a vertical/horizontal scroll > > event can be grouped together to calculate the correct motion vector. > > Frame events group all wl_pointer events. An example sequence of motion > > events > > followed by a diagonal scroll followed by a button event is: > > wl_pointer.motion > > wl_pointer.frame > > wl_pointer.motion > > wl_pointer.frame > > wl_pointer.axis > > wl_pointer.axis > > wl_pointer.frame > > wl_pointer.button > > wl_pointer.frame > > > > In the future, other extensions may insert additional information about an > > event into the frame. For example, an extension may add information about > > the > > physical device that generated an event into the frame. For this reason, > > enter/leave events are grouped by a frame event too. > > > > The axis_source event determines how an axis event was generated. That > > enables > > clients to judge when to use kinetic scrolling. Only one axis_source event > > is > > allowed per frame and applies to all events in this frame. > > > > The axis_stop event notifies a client about the termination of a scroll > > sequence, likewise needed to calculate kinetic scrolling parameters. > > Multiple axis_stop events within the same frame indicate that scrolling has > > stopped in all these axis at the same time. > > > > The axis_discrete event provides the wheel click count. Previously the axis > > value was some hardcoded number (10), with the discrete steps this enables a > > client to differ between line-based scrolling on a mouse wheel and smooth > > scrolling with a touchpad. > > > > We can't extend the existing wl_pointer.axis events so we introduce a new > > concept: latching events. These events (currently only axis_discrete) > > are prefixed before a wl_pointer.axis event. A client must build the full > > state of the event until the respective top-level event arrives. > > i.e. a single event frame for a diagonal scroll with discrete information > > may > > be: > > > > wl_pointer.axis_source > > wl_pointer.axis_discrete > > wl_pointer.axis > > wl_pointer.axis_discrete > > wl_pointer.axis > > wl_pointer.frame > > > > Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> > > --- > > (as for your tablet protocol patch) Perhaps we can use the enum > attribute here as well: > > <arg name="axis_source" type="uint" enum="axis_source"/> > ... > <arg name="axis" type="uint" enum="axis_source" summary="the axis > stopped with this event"/> > ... > <arg name="axis" type="uint" enum="axis_source"/>
fwiw, the latter two are just enum="axis". I've merged this in locally now, thanks. Cheers, Peter _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel