core: Let the MetaA11yManager handle keyboard events
Plumb the MetaA11yManager into key event handling. This manager is partly in control of keyboard event propagation, depending on the screen readers connected. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4217>
This commit is contained in:
parent
a817d7c137
commit
5eaed6e3f3
@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
#include "core/events.h"
|
#include "core/events.h"
|
||||||
|
|
||||||
|
#include "backends/meta-a11y-manager.h"
|
||||||
#include "backends/meta-cursor-tracker-private.h"
|
#include "backends/meta-cursor-tracker-private.h"
|
||||||
#include "backends/meta-dnd-private.h"
|
#include "backends/meta-dnd-private.h"
|
||||||
#include "backends/meta-idle-manager.h"
|
#include "backends/meta-idle-manager.h"
|
||||||
@ -230,6 +231,7 @@ meta_display_handle_event (MetaDisplay *display,
|
|||||||
{
|
{
|
||||||
MetaContext *context = meta_display_get_context (display);
|
MetaContext *context = meta_display_get_context (display);
|
||||||
MetaBackend *backend = meta_context_get_backend (context);
|
MetaBackend *backend = meta_context_get_backend (context);
|
||||||
|
MetaA11yManager *a11y_manager = meta_backend_get_a11y_manager (backend);
|
||||||
MetaCompositor *compositor = meta_display_get_compositor (display);
|
MetaCompositor *compositor = meta_display_get_compositor (display);
|
||||||
ClutterInputDevice *device;
|
ClutterInputDevice *device;
|
||||||
MetaWindow *window = NULL;
|
MetaWindow *window = NULL;
|
||||||
@ -237,6 +239,7 @@ meta_display_handle_event (MetaDisplay *display,
|
|||||||
ClutterEventSequence *sequence;
|
ClutterEventSequence *sequence;
|
||||||
ClutterEventType event_type;
|
ClutterEventType event_type;
|
||||||
gboolean has_grab;
|
gboolean has_grab;
|
||||||
|
gboolean a11y_grabbed;
|
||||||
MetaTabletActionMapper *mapper;
|
MetaTabletActionMapper *mapper;
|
||||||
#ifdef HAVE_WAYLAND
|
#ifdef HAVE_WAYLAND
|
||||||
MetaWaylandCompositor *wayland_compositor;
|
MetaWaylandCompositor *wayland_compositor;
|
||||||
@ -265,6 +268,13 @@ meta_display_handle_event (MetaDisplay *display,
|
|||||||
if (meta_display_process_captured_input (display, event))
|
if (meta_display_process_captured_input (display, event))
|
||||||
return CLUTTER_EVENT_STOP;
|
return CLUTTER_EVENT_STOP;
|
||||||
|
|
||||||
|
if (IS_KEY_EVENT (event_type))
|
||||||
|
{
|
||||||
|
a11y_grabbed = meta_a11y_manager_notify_clients (a11y_manager, event);
|
||||||
|
if (a11y_grabbed)
|
||||||
|
return CLUTTER_EVENT_STOP;
|
||||||
|
}
|
||||||
|
|
||||||
device = clutter_event_get_device (event);
|
device = clutter_event_get_device (event);
|
||||||
clutter_input_pointer_a11y_update (device, event);
|
clutter_input_pointer_a11y_update (device, event);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user