mirror of
https://github.com/brl/mutter.git
synced 2024-11-21 15:40:41 -05:00
core: Let pad mode switch events always go through MetaInputSettings
We used to inhibit all pad actions while the OSD is shown, but one we would actually want to handle are mode switches while the OSD is open. So it has an opportunity to catch up to the mode switch. This lets MetaInputSettings reflect the mode switch (eg. when querying action labels), so the OSD has an opportunity to update the current actions. https://gitlab.gnome.org/GNOME/mutter/merge_requests/975
This commit is contained in:
parent
3aece84499
commit
3c4f5ddcb4
@ -240,13 +240,31 @@ meta_display_handle_event (MetaDisplay *display,
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!display->current_pad_osd &&
|
||||
(event->type == CLUTTER_PAD_BUTTON_PRESS ||
|
||||
event->type == CLUTTER_PAD_BUTTON_RELEASE ||
|
||||
event->type == CLUTTER_PAD_RING ||
|
||||
event->type == CLUTTER_PAD_STRIP))
|
||||
if (event->type == CLUTTER_PAD_BUTTON_PRESS ||
|
||||
event->type == CLUTTER_PAD_BUTTON_RELEASE ||
|
||||
event->type == CLUTTER_PAD_RING ||
|
||||
event->type == CLUTTER_PAD_STRIP)
|
||||
{
|
||||
if (meta_input_settings_handle_pad_event (meta_backend_get_input_settings (backend),
|
||||
gboolean handle_pad_event;
|
||||
gboolean is_mode_switch = FALSE;
|
||||
|
||||
if (event->type == CLUTTER_PAD_BUTTON_PRESS ||
|
||||
event->type == CLUTTER_PAD_BUTTON_RELEASE)
|
||||
{
|
||||
ClutterInputDevice *pad;
|
||||
uint32_t button;
|
||||
|
||||
pad = clutter_event_get_source_device (event);
|
||||
button = clutter_event_get_button (event);
|
||||
|
||||
is_mode_switch =
|
||||
clutter_input_device_get_mode_switch_button_group (pad, button) >= 0;
|
||||
}
|
||||
|
||||
handle_pad_event = !display->current_pad_osd || is_mode_switch;
|
||||
|
||||
if (handle_pad_event &&
|
||||
meta_input_settings_handle_pad_event (meta_backend_get_input_settings (backend),
|
||||
event))
|
||||
{
|
||||
bypass_wayland = bypass_clutter = TRUE;
|
||||
|
Loading…
Reference in New Issue
Block a user