On Fri, Feb 10, 2017 at 11:04:00AM +0100, Hans de Goede wrote: > Hi, > > Series looks good, but patch 1/2 introduces > tp_is_tpkb_combo_below() and patch 2/2 then moves it around > to avoid doing a forward declaration, it would be better IMHO > if patch 1/2 simply defined it in the place where 2/2 puts it. > > With that fixed: > > Reviewed-by: Hans de Goede <hdego...@redhat.com>
fixed, thanks! Cheers, Peter > On 10-02-17 06:45, Peter Hutterer wrote: > > Specify the layout of the combo so we know when to initialize palm > > detection. > > > > This allows us to drop palm detection on external touchpads otherwise, > > replacing the wacom-specific check with something more generic.. > > > > Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> > > --- > > src/evdev-mt-touchpad.c | 19 +++++++++++++++++-- > > src/libinput-util.c | 24 ++++++++++++++++++++++++ > > src/libinput-util.h | 7 +++++++ > > test/test-touchpad.c | 4 ++++ > > udev/90-libinput-model-quirks.hwdb | 7 +++++++ > > udev/parse_hwdb.py | 7 ++++++- > > 6 files changed, 65 insertions(+), 3 deletions(-) > > > > diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c > > index c5eeeac..f8c5cc6 100644 > > --- a/src/evdev-mt-touchpad.c > > +++ b/src/evdev-mt-touchpad.c > > @@ -2192,6 +2192,21 @@ tp_init_dwt(struct tp_dispatch *tp, > > return; > > } > > > > +static inline bool > > +tp_is_tpkb_combo_below(struct evdev_device *device) > > +{ > > + const char *prop; > > + enum tpkbcombo_layout layout = TPKBCOMBO_LAYOUT_UNKNOWN; > > + > > + prop = udev_device_get_property_value(device->udev_device, > > + "LIBINPUT_ATTR_TPKBCOMBO_LAYOUT"); > > + if (!prop) > > + return false; > > + > > + return parse_tpkbcombo_layout_poperty(prop, &layout) && > > + layout == TPKBCOMBO_LAYOUT_BELOW; > > +} > > + > > static void > > tp_init_palmdetect(struct tp_dispatch *tp, > > struct evdev_device *device) > > @@ -2203,8 +2218,8 @@ tp_init_palmdetect(struct tp_dispatch *tp, > > tp->palm.right_edge = INT_MAX; > > tp->palm.left_edge = INT_MIN; > > > > - /* Wacom doesn't have internal touchpads */ > > - if (device->model_flags & EVDEV_MODEL_WACOM_TOUCHPAD) > > + if (device->tags & EVDEV_TAG_EXTERNAL_TOUCHPAD && > > + !tp_is_tpkb_combo_below(device)) > > return; > > > > evdev_device_get_size(device, &width, &height); > > diff --git a/src/libinput-util.c b/src/libinput-util.c > > index d75955c..351bbe4 100644 > > --- a/src/libinput-util.c > > +++ b/src/libinput-util.c > > @@ -336,6 +336,30 @@ parse_switch_reliability_property(const char *prop, > > } > > > > /** > > + * Parses a string with the allowed values: "below" > > + * The value refers to the position of the touchpad (relative to the > > + * keyboard, i.e. your average laptop would be 'below') > > + * > > + * @param prop The value of the property > > + * @param layout The layout > > + * @return true on success, false otherwise > > + */ > > +bool > > +parse_tpkbcombo_layout_poperty(const char *prop, > > + enum tpkbcombo_layout *layout) > > +{ > > + if (!prop) > > + return false; > > + > > + if (streq(prop, "below")) { > > + *layout = TPKBCOMBO_LAYOUT_BELOW; > > + return true; > > + } > > + > > + return false; > > +} > > + > > +/** > > * Return the next word in a string pointed to by state before the first > > * separator character. Call repeatedly to tokenize a whole string. > > * > > diff --git a/src/libinput-util.h b/src/libinput-util.h > > index 00ece58..d86ff12 100644 > > --- a/src/libinput-util.h > > +++ b/src/libinput-util.h > > @@ -379,6 +379,13 @@ double parse_trackpoint_accel_property(const char > > *prop); > > bool parse_dimension_property(const char *prop, size_t *width, size_t > > *height); > > bool parse_calibration_property(const char *prop, float calibration[6]); > > > > +enum tpkbcombo_layout { > > + TPKBCOMBO_LAYOUT_UNKNOWN, > > + TPKBCOMBO_LAYOUT_BELOW, > > +}; > > +bool parse_tpkbcombo_layout_poperty(const char *prop, > > + enum tpkbcombo_layout *layout); > > + > > enum switch_reliability { > > RELIABILITY_UNKNOWN, > > RELIABILITY_RELIABLE, > > diff --git a/test/test-touchpad.c b/test/test-touchpad.c > > index aca9f7b..4656443 100644 > > --- a/test/test-touchpad.c > > +++ b/test/test-touchpad.c > > @@ -933,11 +933,15 @@ touchpad_has_palm_detect_size(struct litest_device > > *dev) > > { > > double width, height; > > unsigned int vendor; > > + unsigned int bustype; > > int rc; > > > > vendor = libinput_device_get_id_vendor(dev->libinput_device); > > + bustype = libevdev_get_id_bustype(dev->evdev); > > if (vendor == VENDOR_ID_WACOM) > > return 0; > > + if (bustype == BUS_BLUETOOTH) > > + return 0; > > if (vendor == VENDOR_ID_APPLE) > > return 1; > > > > diff --git a/udev/90-libinput-model-quirks.hwdb > > b/udev/90-libinput-model-quirks.hwdb > > index 412d872..c1d6235 100644 > > --- a/udev/90-libinput-model-quirks.hwdb > > +++ b/udev/90-libinput-model-quirks.hwdb > > @@ -60,6 +60,13 @@ libinput:name:*ETPS/2 Elantech > > Touchpad*:dmi:*svnASUSTeKCOMPUTERINC.:pnX555LAB:* > > LIBINPUT_MODEL_TOUCHPAD_VISIBLE_MARKER=1 > > > > ########################################## > > +# Chicony > > +########################################## > > +# Acer Hawaii Keyboard, uses Chicony VID > > +libinput:touchpad:input:b0003v04F2p1558* > > + LIBINPUT_ATTR_TPKBCOMBO_LAYOUT=below > > + > > +########################################## > > # Cyborg > > ########################################## > > # Saitek Cyborg R.A.T.5 Mouse > > diff --git a/udev/parse_hwdb.py b/udev/parse_hwdb.py > > index d079be2..2a342bf 100755 > > --- a/udev/parse_hwdb.py > > +++ b/udev/parse_hwdb.py > > @@ -107,7 +107,12 @@ def property_grammar(): > > Suppress('=') - > > reliability_tags('VALUE')] > > > > - grammar = Or(model_props + size_props + reliability) > > + tpkbcombo_tags = Or(('below')) > > + tpkbcombo = [Literal('LIBINPUT_ATTR_TPKBCOMBO_LAYOUT')('NAME') - > > + Suppress('=') - > > + tpkbcombo_tags('VALUE')] > > + > > + grammar = Or(model_props + size_props + reliability + tpkbcombo) > > > > return grammar > > > > _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel