The "state" variable in x11_backend_deliver_button_event is basically the same as (event->response_type == XCB_BUTTON_PRESS), thus update the code to use the last one.
Signed-off-by: Benoit Gschwind <[email protected]> --- src/compositor-x11.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/compositor-x11.c b/src/compositor-x11.c index e7b09cf..5b76dba 100644 --- a/src/compositor-x11.c +++ b/src/compositor-x11.c @@ -1037,7 +1037,7 @@ update_xkb_state_from_core(struct x11_backend *b, uint16_t x11_mask) static void x11_backend_deliver_button_event(struct x11_backend *b, - xcb_generic_event_t *event, int state) + xcb_generic_event_t *event) { assert(event->response_type == XCB_BUTTON_PRESS || event->response_type == XCB_BUTTON_RELEASE); @@ -1046,12 +1046,13 @@ x11_backend_deliver_button_event(struct x11_backend *b, uint32_t button; struct x11_output *output; struct weston_pointer_axis_event weston_event; + bool is_button_pressed = event->response_type == XCB_BUTTON_PRESS; output = x11_backend_find_output(b, button_event->event); if (!output) return; - if (state) + if (is_button_pressed) xcb_grab_pointer(b->conn, 0, output->window, XCB_EVENT_MASK_BUTTON_PRESS | XCB_EVENT_MASK_BUTTON_RELEASE | @@ -1081,7 +1082,7 @@ x11_backend_deliver_button_event(struct x11_backend *b, case 4: /* Axis are measured in pixels, but the xcb events are discrete * steps. Therefore move the axis by some pixels every step. */ - if (state) { + if (is_button_pressed) { weston_event.value = -DEFAULT_AXIS_STEP_DISTANCE; weston_event.discrete = -1; weston_event.has_discrete = true; @@ -1094,7 +1095,7 @@ x11_backend_deliver_button_event(struct x11_backend *b, } return; case 5: - if (state) { + if (is_button_pressed) { weston_event.value = DEFAULT_AXIS_STEP_DISTANCE; weston_event.discrete = 1; weston_event.has_discrete = true; @@ -1107,7 +1108,7 @@ x11_backend_deliver_button_event(struct x11_backend *b, } return; case 6: - if (state) { + if (is_button_pressed) { weston_event.value = -DEFAULT_AXIS_STEP_DISTANCE; weston_event.discrete = -1; weston_event.has_discrete = true; @@ -1120,7 +1121,7 @@ x11_backend_deliver_button_event(struct x11_backend *b, } return; case 7: - if (state) { + if (is_button_pressed) { weston_event.value = DEFAULT_AXIS_STEP_DISTANCE; weston_event.discrete = 1; weston_event.has_discrete = true; @@ -1139,8 +1140,8 @@ x11_backend_deliver_button_event(struct x11_backend *b, notify_button(&b->core_seat, weston_compositor_get_time(), button, - state ? WL_POINTER_BUTTON_STATE_PRESSED : - WL_POINTER_BUTTON_STATE_RELEASED); + is_button_pressed ? WL_POINTER_BUTTON_STATE_PRESSED : + WL_POINTER_BUTTON_STATE_RELEASED); notify_pointer_frame(&b->core_seat); } @@ -1333,10 +1334,8 @@ x11_backend_handle_event(int fd, uint32_t mask, void *data) STATE_UPDATE_NONE); break; case XCB_BUTTON_PRESS: - x11_backend_deliver_button_event(b, event, 1); - break; case XCB_BUTTON_RELEASE: - x11_backend_deliver_button_event(b, event, 0); + x11_backend_deliver_button_event(b, event); break; case XCB_MOTION_NOTIFY: x11_backend_deliver_motion_event(b, event); -- 2.7.3 _______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
