[mutter/wip/tablet-protocol-v2: 62/70] wayland: Hook MetaWaylandTabletPad to pad button actions management
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/tablet-protocol-v2: 62/70] wayland: Hook MetaWaylandTabletPad to pad button actions management
- Date: Wed, 22 Jun 2016 17:38:34 +0000 (UTC)
commit b4bcfcd3a9c6680394519caa07b35c96e428d143
Author: Carlos Garnacho <carlosg gnome org>
Date: Wed Jun 22 18:56:33 2016 +0200
wayland: Hook MetaWaylandTabletPad to pad button actions management
These are handled by the MetaInputSettings, so hook the events emitted
to it.
src/wayland/meta-wayland-tablet-pad.c | 43 +++++++++++++++++++++++++++++++++
1 files changed, 43 insertions(+), 0 deletions(-)
---
diff --git a/src/wayland/meta-wayland-tablet-pad.c b/src/wayland/meta-wayland-tablet-pad.c
index 9e49d26..875c886 100644
--- a/src/wayland/meta-wayland-tablet-pad.c
+++ b/src/wayland/meta-wayland-tablet-pad.c
@@ -29,6 +29,7 @@
#include <wayland-server.h>
#include "tablet-unstable-v2-server-protocol.h"
+#include "backends/meta-input-settings-private.h"
#include "meta-surface-actor-wayland.h"
#include "meta-wayland-private.h"
@@ -231,6 +232,44 @@ handle_pad_button_event (MetaWaylandTabletPad *pad,
return TRUE;
}
+static void
+meta_wayland_tablet_pad_update_action (MetaWaylandTabletPad *pad,
+ const ClutterEvent *event)
+{
+ MetaInputSettings *input_settings;
+ ClutterInputDevice *device;
+ guint button;
+
+ button = event->pad_button.button;
+ device = clutter_event_get_source_device (event);
+ input_settings = meta_input_settings_get ();
+
+ if (!input_settings)
+ return;
+
+ meta_input_settings_handle_pad_button (input_settings, device,
+ event->type == CLUTTER_PAD_BUTTON_PRESS,
+ button);
+}
+
+static gboolean
+meta_wayland_tablet_pad_handle_event_action (MetaWaylandTabletPad *pad,
+ const ClutterEvent *event)
+{
+ MetaInputSettings *input_settings;
+ ClutterInputDevice *device;
+
+ device = clutter_event_get_source_device (event);
+ input_settings = meta_input_settings_get ();
+
+ if (input_settings &&
+ meta_input_settings_is_pad_button_grabbed (input_settings, device,
+ event->pad_button.button))
+ return TRUE;
+
+ return FALSE;
+}
+
gboolean
meta_wayland_tablet_pad_handle_event (MetaWaylandTabletPad *pad,
const ClutterEvent *event)
@@ -249,6 +288,8 @@ meta_wayland_tablet_pad_handle_event (MetaWaylandTabletPad *pad,
if (group)
handled |= meta_wayland_tablet_pad_group_handle_event (group, event);
+ handled |= meta_wayland_tablet_pad_handle_event_action (pad, event);
+
if (handled)
return TRUE;
@@ -384,6 +425,8 @@ meta_wayland_tablet_pad_update (MetaWaylandTabletPad *pad,
{
case CLUTTER_PAD_BUTTON_PRESS:
case CLUTTER_PAD_BUTTON_RELEASE:
+ meta_wayland_tablet_pad_update_action (pad, event);
+ break;
case CLUTTER_PAD_RING:
case CLUTTER_PAD_STRIP:
default:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]