[mutter/wip/carlosg/fix-tablets-on-nested] wayland: Handle NULL event node/vendor/product on tablet methods
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/fix-tablets-on-nested] wayland: Handle NULL event node/vendor/product on tablet methods
- Date: Thu, 8 Feb 2018 11:05:33 +0000 (UTC)
commit 95ccfd99cf21159dacb1d7983fea512f1df972dd
Author: Carlos Garnacho <carlosg gnome org>
Date: Wed Feb 7 13:17:16 2018 +0100
wayland: Handle NULL event node/vendor/product on tablet methods
We currently don't handle NULLs on these correctly, yet they can be
so when running nested. Just refrain from sending those wp_tablet(_pad)
events in that case.
src/wayland/meta-wayland-tablet-pad.c | 6 +++++-
src/wayland/meta-wayland-tablet.c | 12 ++++++++++--
2 files changed, 15 insertions(+), 3 deletions(-)
---
diff --git a/src/wayland/meta-wayland-tablet-pad.c b/src/wayland/meta-wayland-tablet-pad.c
index 21841127e..5c0b80966 100644
--- a/src/wayland/meta-wayland-tablet-pad.c
+++ b/src/wayland/meta-wayland-tablet-pad.c
@@ -277,9 +277,13 @@ meta_wayland_tablet_pad_notify (MetaWaylandTabletPad *pad,
struct wl_resource *resource)
{
struct wl_client *client = wl_resource_get_client (resource);
+ const gchar *node_path;
GList *l;
- zwp_tablet_pad_v2_send_path (resource, clutter_input_device_get_device_node (pad->device));
+ node_path = clutter_input_device_get_device_node (pad->device);
+ if (node_path)
+ zwp_tablet_pad_v2_send_path (resource, node_path);
+
zwp_tablet_pad_v2_send_buttons (resource, pad->n_buttons);
for (l = pad->groups; l; l = l->next)
diff --git a/src/wayland/meta-wayland-tablet.c b/src/wayland/meta-wayland-tablet.c
index 013d00f21..8b6e9395e 100644
--- a/src/wayland/meta-wayland-tablet.c
+++ b/src/wayland/meta-wayland-tablet.c
@@ -85,12 +85,20 @@ meta_wayland_tablet_notify (MetaWaylandTablet *tablet,
struct wl_resource *resource)
{
ClutterInputDevice *device = tablet->device;
+ const gchar *node_path, *vendor, *product;
guint vid, pid;
zwp_tablet_v2_send_name (resource, clutter_input_device_get_device_name (device));
- zwp_tablet_v2_send_path (resource, clutter_input_device_get_device_node (device));
- if (sscanf (clutter_input_device_get_vendor_id (device), "%x", &vid) == 1 &&
+ node_path = clutter_input_device_get_device_node (device);
+ if (node_path)
+ zwp_tablet_v2_send_path (resource, node_path);
+
+ vendor = clutter_input_device_get_vendor_id (device);
+ product = clutter_input_device_get_product_id (device);
+
+ if (vendor && product &&
+ sscanf (clutter_input_device_get_vendor_id (device), "%x", &vid) == 1 &&
sscanf (clutter_input_device_get_product_id (device), "%x", &pid) == 1)
zwp_tablet_v2_send_id (resource, vid, pid);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]