wayland: Separate pad button labeling from other pad features

This will be fully split in future commits.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3005>
This commit is contained in:
Carlos Garnacho 2023-05-16 15:35:15 +02:00 committed by Marge Bot
parent 233e612ef8
commit 85ac3a2d1a
3 changed files with 40 additions and 18 deletions

View File

@ -2764,9 +2764,18 @@ meta_display_get_pad_action_label (MetaDisplay *display,
if (tablet_pad) if (tablet_pad)
{ {
label = meta_wayland_tablet_pad_get_label (tablet_pad, feature, if (feature == META_PAD_FEATURE_BUTTON)
{
label = meta_wayland_tablet_pad_get_button_label (tablet_pad,
action_number); action_number);
} }
else
{
label = meta_wayland_tablet_pad_get_feature_label (tablet_pad,
feature,
action_number);
}
}
if (label) if (label)
return label; return label;

View File

@ -533,23 +533,30 @@ meta_wayland_tablet_pad_label_mode_switch_button (MetaWaylandTabletPad *pad,
return NULL; return NULL;
} }
gchar * char *
meta_wayland_tablet_pad_get_label (MetaWaylandTabletPad *pad, meta_wayland_tablet_pad_get_button_label (MetaWaylandTabletPad *pad,
MetaPadFeatureType feature, int button)
guint action)
{ {
const gchar *label = NULL; const char *label = NULL;
gchar *mode_label; char *mode_label;
switch (feature) mode_label = meta_wayland_tablet_pad_label_mode_switch_button (pad, button);
{
case META_PAD_FEATURE_BUTTON:
mode_label = meta_wayland_tablet_pad_label_mode_switch_button (pad, action);
if (mode_label) if (mode_label)
return mode_label; return mode_label;
label = g_hash_table_lookup (pad->feedback, GUINT_TO_POINTER (action)); label = g_hash_table_lookup (pad->feedback, GUINT_TO_POINTER (button));
break; return g_strdup (label);
}
char *
meta_wayland_tablet_pad_get_feature_label (MetaWaylandTabletPad *pad,
MetaPadFeatureType feature,
int action)
{
const char *label = NULL;
switch (feature)
{
case META_PAD_FEATURE_RING: case META_PAD_FEATURE_RING:
{ {
MetaWaylandTabletPadRing *ring; MetaWaylandTabletPadRing *ring;
@ -568,6 +575,9 @@ meta_wayland_tablet_pad_get_label (MetaWaylandTabletPad *pad,
label = strip->feedback; label = strip->feedback;
break; break;
} }
default:
g_assert_not_reached ();
break;
} }
return g_strdup (label); return g_strdup (label);

View File

@ -74,8 +74,11 @@ gboolean meta_wayland_tablet_pad_handle_event (MetaWaylandTabletPad *
void meta_wayland_tablet_pad_set_focus (MetaWaylandTabletPad *pad, void meta_wayland_tablet_pad_set_focus (MetaWaylandTabletPad *pad,
MetaWaylandSurface *surface); MetaWaylandSurface *surface);
gchar * meta_wayland_tablet_pad_get_label (MetaWaylandTabletPad *pad, char * meta_wayland_tablet_pad_get_button_label (MetaWaylandTabletPad *pad,
int button);
char * meta_wayland_tablet_pad_get_feature_label (MetaWaylandTabletPad *pad,
MetaPadFeatureType feature, MetaPadFeatureType feature,
guint action); int action);
#endif /* META_WAYLAND_TABLET_PAD_H */ #endif /* META_WAYLAND_TABLET_PAD_H */