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 19ff9af..8a65d48 100644 --- a/src/compositor-x11.c +++ b/src/compositor-x11.c @@ -1037,13 +1037,14 @@ 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) { xcb_button_press_event_t *button_event = (xcb_button_press_event_t *) event; uint32_t button; struct x11_output *output; struct weston_pointer_axis_event weston_event; + bool is_button_pressed = event->response_type == XCB_BUTTON_PRESS; assert(event->response_type == XCB_BUTTON_PRESS || event->response_type == XCB_BUTTON_RELEASE); @@ -1052,7 +1053,7 @@ x11_backend_deliver_button_event(struct x11_backend *b, 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 | @@ -1082,7 +1083,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; @@ -1095,7 +1096,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; @@ -1108,7 +1109,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; @@ -1121,7 +1122,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; @@ -1140,8 +1141,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); } @@ -1334,10 +1335,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
