diff --git a/src/backends/meta-input-settings-private.h b/src/backends/meta-input-settings-private.h index e41918e3c..82f58f91d 100644 --- a/src/backends/meta-input-settings-private.h +++ b/src/backends/meta-input-settings-private.h @@ -123,6 +123,9 @@ gboolean meta_input_settings_handle_pad_button (MetaIn ClutterInputDevice *pad, gboolean is_press, guint button); +gchar * meta_input_settings_get_pad_button_action_label (MetaInputSettings *input_settings, + ClutterInputDevice *pad, + guint button); #ifdef HAVE_LIBWACOM WacomDevice * meta_input_settings_get_tablet_wacom_device (MetaInputSettings *settings, diff --git a/src/backends/meta-input-settings.c b/src/backends/meta-input-settings.c index fd6ca6795..1650c3584 100644 --- a/src/backends/meta-input-settings.c +++ b/src/backends/meta-input-settings.c @@ -38,6 +38,7 @@ #include "native/meta-input-settings-native.h" #endif +#include #include static GQuark quark_tool_settings = 0; @@ -1441,3 +1442,40 @@ meta_input_settings_handle_pad_button (MetaInputSettings *input_settings, return FALSE; } } + +gchar * +meta_input_settings_get_pad_button_action_label (MetaInputSettings *input_settings, + ClutterInputDevice *pad, + guint button) +{ + GDesktopPadButtonAction action; + + g_return_val_if_fail (META_IS_INPUT_SETTINGS (input_settings), NULL); + g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (pad), NULL); + g_return_val_if_fail (clutter_input_device_get_device_type (pad) == + CLUTTER_PAD_DEVICE, NULL); + + action = meta_input_settings_get_pad_button_action (input_settings, pad, button); + + switch (action) + { + case G_DESKTOP_PAD_BUTTON_ACTION_KEYBINDING: + { + GSettings *settings; + gchar *accel; + + settings = lookup_pad_button_settings (pad, button); + accel = g_settings_get_string (settings, "keybinding"); + g_object_unref (settings); + + return accel; + } + case G_DESKTOP_PAD_BUTTON_ACTION_SWITCH_MONITOR: + return g_strdup (_("Switch monitor")); + case G_DESKTOP_PAD_BUTTON_ACTION_HELP: + return g_strdup (_("Show on-screen help")); + case G_DESKTOP_PAD_BUTTON_ACTION_NONE: + default: + return NULL; + } +}