[gtk+/wip/wayland-tablet-v2: 37/41] GtkPadController: Notify actions back to the windowing on wayland
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/wayland-tablet-v2: 37/41] GtkPadController: Notify actions back to the windowing on wayland
- Date: Tue, 23 Aug 2016 18:34:24 +0000 (UTC)
commit 5d88fe351686d2007ebceae2448ea8a669811b1c
Author: Carlos Garnacho <carlosg gnome org>
Date: Thu Aug 4 19:49:27 2016 +0200
GtkPadController: Notify actions back to the windowing on wayland
This allows applications to provide descriptions of the actions performed
by each pad feature. pass the GtkPadActionEntry labels for this.
gtk/gtkpadcontroller.c | 30 ++++++++++++++++++++++++++++++
1 files changed, 30 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkpadcontroller.c b/gtk/gtkpadcontroller.c
index dd91835..df54d5d 100644
--- a/gtk/gtkpadcontroller.c
+++ b/gtk/gtkpadcontroller.c
@@ -160,6 +160,36 @@ gtk_pad_controller_handle_mode_switch (GtkPadController *controller,
guint group,
guint mode)
{
+#ifdef GDK_WINDOWING_WAYLAND
+ if (GDK_IS_WAYLAND_DISPLAY (gdk_device_get_display (pad)))
+ {
+ const GtkPadActionEntry *entry;
+ gint elem, idx, n_features;
+
+ for (elem = GTK_PAD_ACTION_BUTTON; elem <= GTK_PAD_ACTION_STRIP; elem++)
+ {
+ n_features = gdk_device_pad_get_n_features (GDK_DEVICE_PAD (pad),
+ elem);
+
+ for (idx = 0; idx < n_features; idx++)
+ {
+ if (gdk_device_pad_get_feature_group (GDK_DEVICE_PAD (pad),
+ elem, idx) != group)
+ continue;
+
+ entry = gtk_pad_action_find_match (controller, elem, idx, mode);
+ if (!entry)
+ continue;
+ if (!g_action_group_has_action (controller->action_group,
+ entry->action_name))
+ continue;
+
+ gdk_wayland_device_pad_set_feedback (pad, elem, idx,
+ g_dgettext (NULL, entry->label));
+ }
+ }
+ }
+#endif
}
static gboolean
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]