summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--clutter/clutter/clutter-main.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/clutter/clutter/clutter-main.c b/clutter/clutter/clutter-main.c
index fbae4d995..66bc88de0 100644
--- a/clutter/clutter/clutter-main.c
+++ b/clutter/clutter/clutter-main.c
@@ -58,6 +58,7 @@
#include "clutter-device-manager-private.h"
#include "clutter-event-private.h"
#include "clutter-feature.h"
+#include "clutter-input-pointer-a11y-private.h"
#include "clutter-main.h"
#include "clutter-master-clock.h"
#include "clutter-mutter.h"
@@ -2261,6 +2262,21 @@ _clutter_process_event_details (ClutterActor *stage,
break;
case CLUTTER_MOTION:
+#ifdef CLUTTER_WINDOWING_X11
+ if (!clutter_check_windowing_backend (CLUTTER_WINDOWING_X11))
+ {
+ if (_clutter_is_input_pointer_a11y_enabled (device))
+ {
+ ClutterInputDevice *core_pointer;
+ gfloat x, y;
+
+ clutter_event_get_coords (event, &x, &y);
+ core_pointer = clutter_device_manager_get_core_device (device->device_manager,
+ CLUTTER_POINTER_DEVICE);
+ _clutter_input_pointer_a11y_on_motion_event (core_pointer, x, y);
+ }
+ }
+#endif /* CLUTTER_WINDOWING_X11 */
/* only the stage gets motion events if they are enabled */
if (!clutter_stage_get_motion_events_enabled (CLUTTER_STAGE (stage)) &&
event->any.source == NULL)
@@ -2299,6 +2315,22 @@ _clutter_process_event_details (ClutterActor *stage,
/* fallthrough from motion */
case CLUTTER_BUTTON_PRESS:
case CLUTTER_BUTTON_RELEASE:
+#ifdef CLUTTER_WINDOWING_X11
+ if (!clutter_check_windowing_backend (CLUTTER_WINDOWING_X11))
+ {
+ if (_clutter_is_input_pointer_a11y_enabled (device) && (event->type != CLUTTER_MOTION))
+ {
+ ClutterInputDevice *core_pointer;
+
+ core_pointer = clutter_device_manager_get_core_device (device->device_manager,
+ CLUTTER_POINTER_DEVICE);
+
+ _clutter_input_pointer_a11y_on_button_event (core_pointer,
+ event->button.button,
+ event->type == CLUTTER_BUTTON_PRESS);
+ }
+ }
+#endif /* CLUTTER_WINDOWING_X11 */
case CLUTTER_SCROLL:
case CLUTTER_TOUCHPAD_PINCH:
case CLUTTER_TOUCHPAD_SWIPE: