From: Derek Foreman Date: Fri, 22 May 2015 16:47:20 +0000 (-0500) Subject: exposay: Don't crash if no pointer is present X-Git-Tag: 1.7.93~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3dd570e754102b940a0177d5bdb18e9accada639;p=platform%2Fupstream%2Fweston.git exposay: Don't crash if no pointer is present If the compositor has never seen a mouse, exposay will crash because the seat->pointer pointer is NULL. Signed-off-by: Derek Foreman Reviewed-by: Daniel Stone --- diff --git a/desktop-shell/exposay.c b/desktop-shell/exposay.c index 4b65cbd1..78e45fb6 100644 --- a/desktop-shell/exposay.c +++ b/desktop-shell/exposay.c @@ -519,7 +519,8 @@ exposay_set_inactive(struct desktop_shell *shell) struct weston_seat *seat = shell->exposay.seat; weston_keyboard_end_grab(seat->keyboard); - weston_pointer_end_grab(seat->pointer); + if (seat->pointer_device_count) + weston_pointer_end_grab(seat->pointer); if (seat->keyboard->input_method_resource) seat->keyboard->grab = &seat->keyboard->input_method_grab; @@ -570,11 +571,13 @@ exposay_transition_active(struct desktop_shell *shell) weston_keyboard_set_focus(seat->keyboard, NULL); shell->exposay.grab_ptr.interface = &exposay_ptr_grab; - weston_pointer_start_grab(seat->pointer, - &shell->exposay.grab_ptr); - weston_pointer_set_focus(seat->pointer, NULL, - seat->pointer->x, seat->pointer->y); - + if (seat->pointer_device_count) { + weston_pointer_start_grab(seat->pointer, + &shell->exposay.grab_ptr); + weston_pointer_set_focus(seat->pointer, NULL, + seat->pointer->x, + seat->pointer->y); + } wl_list_for_each(shell_output, &shell->output_list, link) { enum exposay_layout_state state;