input: add a motion signal to weston_pointer

The signal will be emitted after the pointer is moved. A shell plugin
can listen to the signal and activate certain effects when the pointer
touches the screen corners, for instance.
dev
Giulio Camuffo 11 years ago committed by Kristian Høgsberg
parent ace0a3920e
commit 6fcb378c01
  1. 1
      src/compositor.h
  2. 3
      src/input.c

@ -307,6 +307,7 @@ struct weston_pointer {
struct weston_view *focus; struct weston_view *focus;
uint32_t focus_serial; uint32_t focus_serial;
struct wl_signal focus_signal; struct wl_signal focus_signal;
struct wl_signal motion_signal;
struct weston_view *sprite; struct weston_view *sprite;
struct wl_listener sprite_destroy_listener; struct wl_listener sprite_destroy_listener;

@ -392,6 +392,7 @@ weston_pointer_create(void)
pointer->default_grab.pointer = pointer; pointer->default_grab.pointer = pointer;
pointer->grab = &pointer->default_grab; pointer->grab = &pointer->default_grab;
wl_signal_init(&pointer->focus_signal); wl_signal_init(&pointer->focus_signal);
wl_signal_init(&pointer->motion_signal);
pointer->sprite_destroy_listener.notify = pointer_handle_sprite_destroy; pointer->sprite_destroy_listener.notify = pointer_handle_sprite_destroy;
@ -736,6 +737,8 @@ move_pointer(struct weston_seat *seat, wl_fixed_t x, wl_fixed_t y)
iy - pointer->hotspot_y); iy - pointer->hotspot_y);
weston_view_schedule_repaint(pointer->sprite); weston_view_schedule_repaint(pointer->sprite);
} }
wl_signal_emit(&pointer->motion_signal, pointer);
} }
WL_EXPORT void WL_EXPORT void

Loading…
Cancel
Save