[PATCH] dix: fix inverted handling of legacy scroll button events
Peter Hutterer
peter.hutterer at who-t.net
Tue Oct 4 19:14:51 PDT 2011
On Tue, Oct 04, 2011 at 10:06:08PM +0200, Max Schwarz wrote:
> This bug led to inverted scrolling axes with legacy drivers that
> do not support smooth scrolling classes.
>
> Signed-off-by: Max Schwarz <Max at x-quadraht.de>
merged, thanks. though I've amended the commit message, this can only be
triggered if a driver does support smooth scrolling but sends legacy events
nonetheless (which is why I hadn't found this earlier).
Cheers,
Peter
> ---
> dix/getevents.c | 9 +++++----
> 1 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/dix/getevents.c b/dix/getevents.c
> index ebf2653..97c3937 100644
> --- a/dix/getevents.c
> +++ b/dix/getevents.c
> @@ -1330,21 +1330,22 @@ GetPointerEvents(InternalEvent *events, DeviceIntPtr pDev, int type,
> double val, adj;
> int axis;
>
> + /* Up is negative on valuators, down positive */
> switch (buttons) {
> case 4:
> - adj = 1.0;
> + adj = -1.0;
> axis = v_scroll_axis;
> break;
> case 5:
> - adj = -1.0;
> + adj = 1.0;
> axis = v_scroll_axis;
> break;
> case 6:
> - adj = 1.0;
> + adj = -1.0;
> axis = h_scroll_axis;
> break;
> case 7:
> - adj = -1.0;
> + adj = 1.0;
> axis = h_scroll_axis;
> break;
> default:
> --
> 1.7.4.1
>
>
More information about the xorg-devel
mailing list