Re: [PATCH libinput 05/10] touchpad: hook up scroll config

2014-06-04 Thread Hans de Goede
Hi,

On 06/03/2014 07:34 AM, Peter Hutterer wrote:
 Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
 ---
  src/evdev-mt-touchpad.c | 43 +++
  src/evdev-mt-touchpad.h |  1 +
  2 files changed, 44 insertions(+)
 
 diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
 index 26d5f7d..c1c994a 100644
 --- a/src/evdev-mt-touchpad.c
 +++ b/src/evdev-mt-touchpad.c
 @@ -737,8 +737,51 @@ tp_init_accel(struct tp_dispatch *touchpad, double 
 diagonal)
  }
  
  static int
 +tp_config_scroll_methods(struct libinput_device *device)
 +{
 + struct evdev_dispatch *dispatch = ((struct evdev_device 
 *)device)-dispatch;

As with previous patches, please user container_of here for proper type 
checking.
Same for all the other occurrences of the same pattern below.

Otherwise this looks good.

Regards,

Hans

 + struct tp_dispatch *tp = container_of(dispatch, tp, base);
 +
 + return LIBINPUT_SCROLL_METHOD_TWOFINGER;
 +}
 +
 +static enum libinput_config_status
 +tp_config_scroll_set(struct libinput_device *device,
 +  enum libinput_scroll_method method)
 +{
 + struct evdev_dispatch *dispatch = ((struct evdev_device 
 *)device)-dispatch;
 + struct tp_dispatch *tp = container_of(dispatch, tp, base);
 +
 + if (method != LIBINPUT_SCROLL_METHOD_TWOFINGER)
 + return LIBINPUT_CONFIG_STATUS_UNSUPPORTED;
 +
 + return LIBINPUT_CONFIG_STATUS_SUCCESS;
 +}
 +
 +static enum libinput_scroll_method
 +tp_config_scroll_get(struct libinput_device *device)
 +{
 + struct evdev_dispatch *dispatch = ((struct evdev_device 
 *)device)-dispatch;
 + struct tp_dispatch *tp = container_of(dispatch, tp, base);
 +
 + return LIBINPUT_SCROLL_METHOD_TWOFINGER;
 +}
 +
 +static void
 +tp_config_scroll_reset(struct libinput_device *device)
 +{
 + /* two-finger scrolling is hardcoded, nothing to do */
 +}
 +
 +static int
  tp_init_scroll(struct tp_dispatch *tp)
  {
 + tp-scroll.config.methods = tp_config_scroll_methods;
 + tp-scroll.config.set = tp_config_scroll_set;
 + tp-scroll.config.get = tp_config_scroll_get;
 + tp-scroll.config.reset = tp_config_scroll_reset;
 + tp-device-base.config.scroll = tp-scroll.config;
 +
   tp-scroll.direction = 0;
   tp-scroll.state = SCROLL_STATE_NONE;
  
 diff --git a/src/evdev-mt-touchpad.h b/src/evdev-mt-touchpad.h
 index 0b31e9a..d89d74c 100644
 --- a/src/evdev-mt-touchpad.h
 +++ b/src/evdev-mt-touchpad.h
 @@ -195,6 +195,7 @@ struct tp_dispatch {
   } buttons;  /* physical buttons */
  
   struct {
 + struct libinput_device_config_scroll config;
   enum scroll_state state;
   enum libinput_pointer_axis direction;
   } scroll;
 
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


[PATCH libinput 05/10] touchpad: hook up scroll config

2014-06-02 Thread Peter Hutterer
Signed-off-by: Peter Hutterer peter.hutte...@who-t.net
---
 src/evdev-mt-touchpad.c | 43 +++
 src/evdev-mt-touchpad.h |  1 +
 2 files changed, 44 insertions(+)

diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
index 26d5f7d..c1c994a 100644
--- a/src/evdev-mt-touchpad.c
+++ b/src/evdev-mt-touchpad.c
@@ -737,8 +737,51 @@ tp_init_accel(struct tp_dispatch *touchpad, double 
diagonal)
 }
 
 static int
+tp_config_scroll_methods(struct libinput_device *device)
+{
+   struct evdev_dispatch *dispatch = ((struct evdev_device 
*)device)-dispatch;
+   struct tp_dispatch *tp = container_of(dispatch, tp, base);
+
+   return LIBINPUT_SCROLL_METHOD_TWOFINGER;
+}
+
+static enum libinput_config_status
+tp_config_scroll_set(struct libinput_device *device,
+enum libinput_scroll_method method)
+{
+   struct evdev_dispatch *dispatch = ((struct evdev_device 
*)device)-dispatch;
+   struct tp_dispatch *tp = container_of(dispatch, tp, base);
+
+   if (method != LIBINPUT_SCROLL_METHOD_TWOFINGER)
+   return LIBINPUT_CONFIG_STATUS_UNSUPPORTED;
+
+   return LIBINPUT_CONFIG_STATUS_SUCCESS;
+}
+
+static enum libinput_scroll_method
+tp_config_scroll_get(struct libinput_device *device)
+{
+   struct evdev_dispatch *dispatch = ((struct evdev_device 
*)device)-dispatch;
+   struct tp_dispatch *tp = container_of(dispatch, tp, base);
+
+   return LIBINPUT_SCROLL_METHOD_TWOFINGER;
+}
+
+static void
+tp_config_scroll_reset(struct libinput_device *device)
+{
+   /* two-finger scrolling is hardcoded, nothing to do */
+}
+
+static int
 tp_init_scroll(struct tp_dispatch *tp)
 {
+   tp-scroll.config.methods = tp_config_scroll_methods;
+   tp-scroll.config.set = tp_config_scroll_set;
+   tp-scroll.config.get = tp_config_scroll_get;
+   tp-scroll.config.reset = tp_config_scroll_reset;
+   tp-device-base.config.scroll = tp-scroll.config;
+
tp-scroll.direction = 0;
tp-scroll.state = SCROLL_STATE_NONE;
 
diff --git a/src/evdev-mt-touchpad.h b/src/evdev-mt-touchpad.h
index 0b31e9a..d89d74c 100644
--- a/src/evdev-mt-touchpad.h
+++ b/src/evdev-mt-touchpad.h
@@ -195,6 +195,7 @@ struct tp_dispatch {
} buttons;  /* physical buttons */
 
struct {
+   struct libinput_device_config_scroll config;
enum scroll_state state;
enum libinput_pointer_axis direction;
} scroll;
-- 
1.9.0

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel