From 88e0c5f1dbafd45fcc4282a523ba195ca22b9c94 Mon Sep 17 00:00:00 2001 From: Marius Vlad Date: Thu, 22 Oct 2020 12:27:59 +0300 Subject: wth-receiver-seat: Display a message when we don't have a valid seat This way we inform the users that the receiver won't relaying back events. This could happen if the user starts the transmitter side after starts the receiver. For now this just informs the users, requiring a follow-up fix, as to determine why we do not have a valid seat and input devices, if the order in which the transmitter and receiver is started is changed. Bug-AGL: SPEC-3601, SPEC-3605 Signed-off-by: Marius Vlad Change-Id: I0c398358f22697323bd90cdaedcbfac03ca5c8dc --- src/wth-receiver-seat.c | 60 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 5 deletions(-) diff --git a/src/wth-receiver-seat.c b/src/wth-receiver-seat.c index 3457748..f4b4886 100644 --- a/src/wth-receiver-seat.c +++ b/src/wth-receiver-seat.c @@ -39,6 +39,11 @@ waltham_touch_down(struct window *window, uint32_t serial, struct seat *seat = window->receiver_seat; struct touch *touch = seat->touch; + if (!touch) { + fprintf(stderr, "We do not have touch device!\n"); + return; + } + if (touch->obj) { fprintf(stdout, "waltham_touch_down() sending touch_down\n"); wthp_touch_send_down(touch->obj, serial, time, surface->obj, id, x_w, y_w); @@ -53,6 +58,11 @@ waltham_touch_up(struct window *window, uint32_t serial, struct seat *seat = window->receiver_seat; struct touch *touch = seat->touch; + if (!touch) { + fprintf(stderr, "We do not have touch device!\n"); + return; + } + if (touch->obj) { fprintf(stdout, "waltham_touch_motion() sending touch_up\n"); wthp_touch_send_up(touch->obj, serial, time, id); @@ -67,6 +77,11 @@ waltham_touch_motion(struct window *window, uint32_t time, struct seat *seat = window->receiver_seat; struct touch *touch = seat->touch; + if (!touch) { + fprintf(stderr, "We do not have touch device!\n"); + return; + } + if (touch->obj) { fprintf(stdout, "waltham_touch_motion() sending touch_motion\n"); wthp_touch_send_motion(touch->obj, time, id, x_w, y_w); @@ -79,6 +94,11 @@ waltham_touch_frame(struct window *window) struct seat *seat = window->receiver_seat; struct touch *touch = seat->touch; + if (!touch) { + fprintf(stderr, "We do not have touch device!\n"); + return; + } + if (touch->obj) { fprintf(stdout, "waltham_touch_frame() sending frame\n"); wthp_touch_send_frame(touch->obj); @@ -91,6 +111,11 @@ waltham_touch_cancel(struct window *window) struct seat *seat = window->receiver_seat; struct touch *touch = seat->touch; + if (!touch) { + fprintf(stderr, "We do not have touch device!\n"); + return; + } + if (touch->obj) { fprintf(stdout, "waltham_touch_cancel() sending cancel\n"); wthp_touch_send_cancel(touch->obj); @@ -109,7 +134,12 @@ waltham_pointer_enter(struct window *window, uint32_t serial, struct seat *seat = window->receiver_seat; struct pointer *pointer = seat->pointer; - if (pointer->obj) { + if (!pointer) { + fprintf(stderr, "We do not have pointer device!\n"); + return; + } + + if (pointer && pointer->obj) { fprintf(stdout, "waltham_pointer_enter() sending enter\n"); wthp_pointer_send_enter(pointer->obj, serial, surface->obj, sx, sy); } @@ -122,7 +152,12 @@ waltham_pointer_leave(struct window *window, uint32_t serial) struct seat *seat = window->receiver_seat; struct pointer *pointer = seat->pointer; - if (pointer->obj) { + if (!pointer) { + fprintf(stderr, "We do not have pointer device!\n"); + return; + } + + if (pointer && pointer->obj) { fprintf(stdout, "waltham_pointer_leave() sending leave\n"); wthp_pointer_send_leave(pointer->obj, serial, surface->obj); } @@ -135,7 +170,12 @@ waltham_pointer_motion(struct window *window, uint32_t time, struct seat *seat = window->receiver_seat; struct pointer *pointer = seat->pointer; - if (pointer->obj) { + if (!pointer) { + fprintf(stderr, "We do not have pointer device!\n"); + return; + } + + if (pointer && pointer->obj) { fprintf(stdout, "waltham_pointer_motion() sending motion\n"); wthp_pointer_send_motion(pointer->obj, time, sx, sy); } @@ -149,7 +189,12 @@ waltham_pointer_button(struct window *window, uint32_t serial, struct seat *seat = window->receiver_seat; struct pointer *pointer = seat->pointer; - if (pointer->obj) { + if (!pointer) { + fprintf(stderr, "We do not have pointer device!\n"); + return; + } + + if (pointer && pointer->obj) { fprintf(stdout, "waltham_pointer_button() sending button\n"); wthp_pointer_send_button(pointer->obj, serial, time, button, state); } @@ -162,7 +207,12 @@ waltham_pointer_axis(struct window *window, uint32_t time, struct seat *seat = window->receiver_seat; struct pointer *pointer = seat->pointer; - if (pointer->obj) { + if (!pointer) { + fprintf(stderr, "We do not have pointer device!\n"); + return; + } + + if (pointer && pointer->obj) { fprintf(stdout, "waltham_pointer_axis() sending pointer_axis\n"); wthp_pointer_send_axis(pointer->obj, time, axis, value); } -- cgit 1.2.3-korg