On Mon, Jun 03, 2013 at 10:55:47PM +0200, Hardening wrote:
> The RDP compositor was ignoring mouse wheel events, this patch adds
> support for it.

Committed, thanks.

Kristian

> ---
>  src/compositor-rdp.c | 19 ++++++++++++++++++-
>  1 file changed, 18 insertions(+), 1 deletion(-)
> 
> diff --git a/src/compositor-rdp.c b/src/compositor-rdp.c
> index e855ba6..b81d789 100644
> --- a/src/compositor-rdp.c
> +++ b/src/compositor-rdp.c
> @@ -42,6 +42,7 @@
>  #include "pixman-renderer.h"
>  
>  #define MAX_FREERDP_FDS 32
> +#define DEFAULT_AXIS_STEP_DISTANCE wl_fixed_from_int(10)
>  
>  struct rdp_compositor_config {
>       int width;
> @@ -758,7 +759,7 @@ xf_peer_activate(freerdp_peer *client)
>  
>  static void
>  xf_mouseEvent(rdpInput *input, UINT16 flags, UINT16 x, UINT16 y) {
> -     wl_fixed_t wl_x, wl_y;
> +     wl_fixed_t wl_x, wl_y, axis;
>       RdpPeerContext *peerContext = (RdpPeerContext *)input->context;
>       struct rdp_output *output;
>       uint32_t button = 0;
> @@ -785,6 +786,22 @@ xf_mouseEvent(rdpInput *input, UINT16 flags, UINT16 x, 
> UINT16 y) {
>                       (flags & PTR_FLAGS_DOWN) ? 
> WL_POINTER_BUTTON_STATE_PRESSED : WL_POINTER_BUTTON_STATE_RELEASED
>               );
>       }
> +
> +     if (flags & PTR_FLAGS_WHEEL) {
> +             /* DEFAULT_AXIS_STEP_DISTANCE is stolen from compositor-x11.c
> +              * The RDP specs says the lower bits of flags contains the "the 
> number of rotation
> +              * units the mouse wheel was rotated".
> +              *
> +              * 
> http://blogs.msdn.com/b/oldnewthing/archive/2013/01/23/10387366.aspx explains 
> the 120 value
> +              */
> +             axis = (DEFAULT_AXIS_STEP_DISTANCE * (flags & 0xff)) / 120;
> +             if (flags & PTR_FLAGS_WHEEL_NEGATIVE)
> +                     axis = -axis;
> +
> +             notify_axis(&peerContext->item.seat, 
> weston_compositor_get_time(),
> +                                         WL_POINTER_AXIS_VERTICAL_SCROLL,
> +                                         axis);
> +     }
>  }
>  
>  static void
> -- 
> 1.8.1.2
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to