diff --git a/src/wayland/meta-wayland-data-device.c b/src/wayland/meta-wayland-data-device.c index f0457c7f3..83c9f05d6 100644 --- a/src/wayland/meta-wayland-data-device.c +++ b/src/wayland/meta-wayland-data-device.c @@ -524,7 +524,7 @@ static gboolean keyboard_drag_grab_key (MetaWaylandKeyboardGrab *grab, const ClutterEvent *event) { - if (event->key.keyval == CLUTTER_KEY_Escape) + if (clutter_event_get_key_symbol (event) == CLUTTER_KEY_Escape) { MetaWaylandDragGrab *drag_grab; diff --git a/src/wayland/meta-wayland-keyboard.c b/src/wayland/meta-wayland-keyboard.c index 99db5ecb8..e69b05c71 100644 --- a/src/wayland/meta-wayland-keyboard.c +++ b/src/wayland/meta-wayland-keyboard.c @@ -501,17 +501,18 @@ default_grab_key (MetaWaylandKeyboardGrab *grab, const ClutterEvent *event) { MetaWaylandKeyboard *keyboard = grab->keyboard; - gboolean is_press = event->type == CLUTTER_KEY_PRESS; + gboolean is_press = clutter_event_type (event) == CLUTTER_KEY_PRESS; guint32 code = 0; /* Ignore autorepeat events, as autorepeat in Wayland is done on the client * side. */ - if (event->key.flags & CLUTTER_EVENT_FLAG_REPEATED) + if (clutter_event_get_flags (event) & CLUTTER_EVENT_FLAG_REPEATED) return FALSE; code = clutter_event_get_event_code (event); - return meta_wayland_keyboard_broadcast_key (keyboard, event->key.time, + return meta_wayland_keyboard_broadcast_key (keyboard, + clutter_event_get_time (event), code, is_press); } @@ -624,9 +625,13 @@ void meta_wayland_keyboard_update (MetaWaylandKeyboard *keyboard, const ClutterKeyEvent *event) { - gboolean is_press = event->type == CLUTTER_KEY_PRESS; + gboolean is_press = clutter_event_type ((ClutterEvent *) event) == CLUTTER_KEY_PRESS; + uint32_t evdev_code, hardware_keycode; - if (!update_pressed_keys (&keyboard->pressed_keys, event->evdev_code, is_press)) + evdev_code = clutter_event_get_event_code ((ClutterEvent *) event); + hardware_keycode = clutter_event_get_key_code ((ClutterEvent *) event); + + if (!update_pressed_keys (&keyboard->pressed_keys, evdev_code, is_press)) return; /* If we get a key event but still have pending modifier state @@ -637,29 +642,35 @@ meta_wayland_keyboard_update (MetaWaylandKeyboard *keyboard, notify_modifiers (keyboard); keyboard->mods_changed = xkb_state_update_key (keyboard->xkb_info.state, - event->hardware_keycode, + hardware_keycode, is_press ? XKB_KEY_DOWN : XKB_KEY_UP); keyboard->mods_changed |= kbd_a11y_apply_mask (keyboard); } gboolean -meta_wayland_keyboard_handle_event (MetaWaylandKeyboard *keyboard, +meta_wayland_keyboard_handle_event (MetaWaylandKeyboard *keyboard, const ClutterKeyEvent *event) { #ifdef WITH_VERBOSE_MODE - gboolean is_press = event->type == CLUTTER_KEY_PRESS; + gboolean is_press = + clutter_event_type ((ClutterEvent *) event) == CLUTTER_KEY_PRESS; #endif gboolean handled; + ClutterEventFlags flags; + uint32_t hardware_keycode; + + flags = clutter_event_get_flags ((ClutterEvent *) event); + hardware_keycode = clutter_event_get_key_code ((ClutterEvent *) event); /* Synthetic key events are for autorepeat. Ignore those, as * autorepeat in Wayland is done on the client side. */ - if ((event->flags & CLUTTER_EVENT_FLAG_SYNTHETIC) && - !(event->flags & CLUTTER_EVENT_FLAG_INPUT_METHOD)) + if ((flags & CLUTTER_EVENT_FLAG_SYNTHETIC) && + !(flags & CLUTTER_EVENT_FLAG_INPUT_METHOD)) return FALSE; meta_verbose ("Handling key %s event code %d", is_press ? "press" : "release", - event->hardware_keycode); + hardware_keycode); handled = notify_key (keyboard, (const ClutterEvent *) event); diff --git a/src/wayland/meta-wayland-pointer-gesture-hold.c b/src/wayland/meta-wayland-pointer-gesture-hold.c index 5ccc42407..7c9376458 100644 --- a/src/wayland/meta-wayland-pointer-gesture-hold.c +++ b/src/wayland/meta-wayland-pointer-gesture-hold.c @@ -43,7 +43,7 @@ handle_hold_begin (MetaWaylandPointer *pointer, serial = wl_display_next_serial (seat->wl_display); fingers = clutter_event_get_touchpad_gesture_finger_count (event); - pointer_client->active_touchpad_gesture = event->type; + pointer_client->active_touchpad_gesture = clutter_event_type (event); wl_resource_for_each (resource, &pointer_client->hold_gesture_resources) { @@ -85,7 +85,8 @@ handle_hold_end (MetaWaylandPointer *pointer, seat = meta_wayland_pointer_get_seat (pointer); serial = wl_display_next_serial (seat->wl_display); - if (event->touchpad_hold.phase == CLUTTER_TOUCHPAD_GESTURE_PHASE_CANCEL) + if (clutter_event_get_gesture_phase (event) == + CLUTTER_TOUCHPAD_GESTURE_PHASE_CANCEL) cancelled = TRUE; broadcast_end (pointer, serial, @@ -97,13 +98,13 @@ gboolean meta_wayland_pointer_gesture_hold_handle_event (MetaWaylandPointer *pointer, const ClutterEvent *event) { - if (event->type != CLUTTER_TOUCHPAD_HOLD) + if (clutter_event_type (event) != CLUTTER_TOUCHPAD_HOLD) return FALSE; if (!pointer->focus_client) return FALSE; - switch (event->touchpad_hold.phase) + switch (clutter_event_get_gesture_phase (event)) { case CLUTTER_TOUCHPAD_GESTURE_PHASE_BEGIN: handle_hold_begin (pointer, event); diff --git a/src/wayland/meta-wayland-pointer-gesture-pinch.c b/src/wayland/meta-wayland-pointer-gesture-pinch.c index 16f106a76..9f8fc5389 100644 --- a/src/wayland/meta-wayland-pointer-gesture-pinch.c +++ b/src/wayland/meta-wayland-pointer-gesture-pinch.c @@ -47,7 +47,7 @@ handle_pinch_begin (MetaWaylandPointer *pointer, serial = wl_display_next_serial (seat->wl_display); fingers = clutter_event_get_touchpad_gesture_finger_count (event); - pointer_client->active_touchpad_gesture = event->type; + pointer_client->active_touchpad_gesture = clutter_event_type (event); wl_resource_for_each (resource, &pointer_client->pinch_gesture_resources) { @@ -113,7 +113,8 @@ handle_pinch_end (MetaWaylandPointer *pointer, seat = meta_wayland_pointer_get_seat (pointer); serial = wl_display_next_serial (seat->wl_display); - if (event->touchpad_pinch.phase == CLUTTER_TOUCHPAD_GESTURE_PHASE_CANCEL) + if (clutter_event_get_gesture_phase (event) == + CLUTTER_TOUCHPAD_GESTURE_PHASE_CANCEL) cancelled = TRUE; broadcast_end (pointer, serial, @@ -125,13 +126,13 @@ gboolean meta_wayland_pointer_gesture_pinch_handle_event (MetaWaylandPointer *pointer, const ClutterEvent *event) { - if (event->type != CLUTTER_TOUCHPAD_PINCH) + if (clutter_event_type (event) != CLUTTER_TOUCHPAD_PINCH) return FALSE; if (!pointer->focus_client) return FALSE; - switch (event->touchpad_pinch.phase) + switch (clutter_event_get_gesture_phase (event)) { case CLUTTER_TOUCHPAD_GESTURE_PHASE_BEGIN: handle_pinch_begin (pointer, event); diff --git a/src/wayland/meta-wayland-pointer-gesture-swipe.c b/src/wayland/meta-wayland-pointer-gesture-swipe.c index 924a9ded1..adfde8a96 100644 --- a/src/wayland/meta-wayland-pointer-gesture-swipe.c +++ b/src/wayland/meta-wayland-pointer-gesture-swipe.c @@ -47,7 +47,7 @@ handle_swipe_begin (MetaWaylandPointer *pointer, serial = wl_display_next_serial (seat->wl_display); fingers = clutter_event_get_touchpad_gesture_finger_count (event); - pointer_client->active_touchpad_gesture = event->type; + pointer_client->active_touchpad_gesture = clutter_event_type (event); wl_resource_for_each (resource, &pointer_client->swipe_gesture_resources) { @@ -109,7 +109,8 @@ handle_swipe_end (MetaWaylandPointer *pointer, seat = meta_wayland_pointer_get_seat (pointer); serial = wl_display_next_serial (seat->wl_display); - if (event->touchpad_swipe.phase == CLUTTER_TOUCHPAD_GESTURE_PHASE_CANCEL) + if (clutter_event_get_gesture_phase (event) == + CLUTTER_TOUCHPAD_GESTURE_PHASE_CANCEL) cancelled = TRUE; broadcast_end (pointer, serial, @@ -121,13 +122,13 @@ gboolean meta_wayland_pointer_gesture_swipe_handle_event (MetaWaylandPointer *pointer, const ClutterEvent *event) { - if (event->type != CLUTTER_TOUCHPAD_SWIPE) + if (clutter_event_type (event) != CLUTTER_TOUCHPAD_SWIPE) return FALSE; if (!pointer->focus_client) return FALSE; - switch (event->touchpad_swipe.phase) + switch (clutter_event_get_gesture_phase (event)) { case CLUTTER_TOUCHPAD_GESTURE_PHASE_BEGIN: handle_swipe_begin (pointer, event); diff --git a/src/wayland/meta-wayland-pointer.c b/src/wayland/meta-wayland-pointer.c index d365034f2..fa7cb667b 100644 --- a/src/wayland/meta-wayland-pointer.c +++ b/src/wayland/meta-wayland-pointer.c @@ -392,16 +392,15 @@ meta_wayland_pointer_send_motion (MetaWaylandPointer *pointer, { struct wl_resource *resource; uint32_t time; - float sx, sy; + float x, y, sx, sy; if (!pointer->focus_client) return; time = clutter_event_get_time (event); + clutter_event_get_coords (event, &x, &y); meta_wayland_surface_get_relative_coordinates (pointer->focus_surface, - event->motion.x, - event->motion.y, - &sx, &sy); + x, y, &sx, &sy); wl_resource_for_each (resource, &pointer->focus_client->pointer_resources) { @@ -681,14 +680,18 @@ void meta_wayland_pointer_update (MetaWaylandPointer *pointer, const ClutterEvent *event) { - if ((event->type == CLUTTER_MOTION || - event->type == CLUTTER_ENTER || - event->type == CLUTTER_LEAVE) && + ClutterEventType event_type; + + event_type = clutter_event_type (event); + + if ((event_type == CLUTTER_MOTION || + event_type == CLUTTER_ENTER || + event_type == CLUTTER_LEAVE) && !clutter_event_get_event_sequence (event)) { repick_for_event (pointer, event); - if (event->type == CLUTTER_ENTER) + if (event_type == CLUTTER_ENTER) { MetaWindow *focus_window = NULL; ClutterInputDevice *device; @@ -713,9 +716,9 @@ meta_wayland_pointer_update (MetaWaylandPointer *pointer, } } - if (event->type == CLUTTER_MOTION || - event->type == CLUTTER_BUTTON_PRESS || - event->type == CLUTTER_BUTTON_RELEASE) + if (event_type == CLUTTER_MOTION || + event_type == CLUTTER_BUTTON_PRESS || + event_type == CLUTTER_BUTTON_RELEASE) { pointer->button_count = count_buttons (event); } @@ -741,7 +744,7 @@ handle_button_event (MetaWaylandPointer *pointer, { gboolean implicit_grab; - implicit_grab = (event->type == CLUTTER_BUTTON_PRESS) && (pointer->button_count == 1); + implicit_grab = (clutter_event_type (event) == CLUTTER_BUTTON_PRESS) && (pointer->button_count == 1); if (implicit_grab) { pointer->grab_button = clutter_event_get_button (event); @@ -770,6 +773,7 @@ handle_scroll_event (MetaWaylandPointer *pointer, enum wl_pointer_axis_source source = -1; MetaWaylandPointerClient *client; gboolean is_discrete_event = FALSE, is_value120_event = FALSE; + ClutterScrollFinishFlags finish_flags; if (clutter_event_get_flags (event) & CLUTTER_EVENT_FLAG_POINTER_EMULATED) return; @@ -778,7 +782,7 @@ handle_scroll_event (MetaWaylandPointer *pointer, if (!client) return; - switch (event->scroll.scroll_source) + switch (clutter_event_get_scroll_source (event)) { case CLUTTER_SCROLL_SOURCE_WHEEL: source = WL_POINTER_AXIS_SOURCE_WHEEL; @@ -844,6 +848,8 @@ handle_scroll_event (MetaWaylandPointer *pointer, return; } + finish_flags = clutter_event_get_scroll_finish_flags (event); + wl_resource_for_each (resource, &client->pointer_resources) { int client_version = wl_resource_get_version (resource); @@ -876,7 +882,7 @@ handle_scroll_event (MetaWaylandPointer *pointer, wl_pointer_send_axis (resource, clutter_event_get_time (event), WL_POINTER_AXIS_HORIZONTAL_SCROLL, x_value); - if ((event->scroll.finish_flags & CLUTTER_SCROLL_FINISHED_HORIZONTAL) && + if ((finish_flags & CLUTTER_SCROLL_FINISHED_HORIZONTAL) && client_version >= WL_POINTER_AXIS_STOP_SINCE_VERSION) wl_pointer_send_axis_stop (resource, clutter_event_get_time (event), @@ -905,7 +911,7 @@ handle_scroll_event (MetaWaylandPointer *pointer, wl_pointer_send_axis (resource, clutter_event_get_time (event), WL_POINTER_AXIS_VERTICAL_SCROLL, y_value); - if ((event->scroll.finish_flags & CLUTTER_SCROLL_FINISHED_VERTICAL) && + if ((finish_flags & CLUTTER_SCROLL_FINISHED_VERTICAL) && client_version >= WL_POINTER_AXIS_STOP_SINCE_VERSION) wl_pointer_send_axis_stop (resource, clutter_event_get_time (event), @@ -919,7 +925,7 @@ gboolean meta_wayland_pointer_handle_event (MetaWaylandPointer *pointer, const ClutterEvent *event) { - switch (event->type) + switch (clutter_event_type (event)) { case CLUTTER_MOTION: handle_motion_event (pointer, event); diff --git a/src/wayland/meta-wayland-seat.c b/src/wayland/meta-wayland-seat.c index b673aa6c6..a59aff129 100644 --- a/src/wayland/meta-wayland-seat.c +++ b/src/wayland/meta-wayland-seat.c @@ -274,8 +274,11 @@ static gboolean event_is_synthesized_crossing (const ClutterEvent *event) { ClutterInputDevice *device; + ClutterEventType event_type; - if (event->type != CLUTTER_ENTER && event->type != CLUTTER_LEAVE) + event_type = clutter_event_type (event); + + if (event_type != CLUTTER_ENTER && event_type != CLUTTER_LEAVE) return FALSE; device = clutter_event_get_source_device (event); @@ -325,7 +328,7 @@ meta_wayland_seat_update (MetaWaylandSeat *seat, !event_is_synthesized_crossing (event)) return; - switch (event->type) + switch (clutter_event_type (event)) { case CLUTTER_MOTION: case CLUTTER_BUTTON_PRESS: @@ -359,17 +362,21 @@ gboolean meta_wayland_seat_handle_event (MetaWaylandSeat *seat, const ClutterEvent *event) { + ClutterEventType event_type; + if (!(clutter_event_get_flags (event) & CLUTTER_EVENT_FLAG_INPUT_METHOD) && !event_from_supported_hardware_device (seat, event)) return FALSE; - if (event->type == CLUTTER_BUTTON_PRESS || - event->type == CLUTTER_TOUCH_BEGIN) + event_type = clutter_event_type (event); + + if (event_type == CLUTTER_BUTTON_PRESS || + event_type == CLUTTER_TOUCH_BEGIN) { meta_wayland_text_input_handle_event (seat->text_input, event); } - switch (event->type) + switch (event_type) { case CLUTTER_MOTION: case CLUTTER_BUTTON_PRESS: diff --git a/src/wayland/meta-wayland-tablet-manager.c b/src/wayland/meta-wayland-tablet-manager.c index c8aae5d74..b2094577f 100644 --- a/src/wayland/meta-wayland-tablet-manager.c +++ b/src/wayland/meta-wayland-tablet-manager.c @@ -177,7 +177,7 @@ meta_wayland_tablet_manager_update (MetaWaylandTabletManager *manager, if (!tablet_seat) return; - switch (event->type) + switch (clutter_event_type (event)) { case CLUTTER_PROXIMITY_IN: case CLUTTER_PROXIMITY_OUT: @@ -207,7 +207,7 @@ meta_wayland_tablet_manager_handle_event (MetaWaylandTabletManager *manager, if (!tablet_seat) return CLUTTER_EVENT_PROPAGATE; - switch (event->type) + switch (clutter_event_type (event)) { case CLUTTER_PROXIMITY_IN: case CLUTTER_PROXIMITY_OUT: diff --git a/src/wayland/meta-wayland-tablet-pad-group.c b/src/wayland/meta-wayland-tablet-pad-group.c index 281651588..31ef939d8 100644 --- a/src/wayland/meta-wayland-tablet-pad-group.c +++ b/src/wayland/meta-wayland-tablet-pad-group.c @@ -203,12 +203,17 @@ void meta_wayland_tablet_pad_group_update (MetaWaylandTabletPadGroup *group, const ClutterEvent *event) { - switch (event->type) + switch (clutter_event_type (event)) { case CLUTTER_PAD_BUTTON_PRESS: case CLUTTER_PAD_BUTTON_RELEASE: - if (meta_wayland_tablet_pad_group_is_mode_switch_button (group, event->pad_button.button)) - group->current_mode = event->pad_button.mode; + if (meta_wayland_tablet_pad_group_is_mode_switch_button (group, + clutter_event_get_button (event))) + { + clutter_event_get_pad_details (event, NULL, + &group->current_mode, + NULL, NULL); + } break; default: break; @@ -220,11 +225,13 @@ handle_pad_ring_event (MetaWaylandTabletPadGroup *group, const ClutterEvent *event) { MetaWaylandTabletPadRing *ring; + uint32_t number; - if (event->type != CLUTTER_PAD_RING) + if (clutter_event_type (event) != CLUTTER_PAD_RING) return FALSE; - ring = g_list_nth_data (group->rings, event->pad_ring.ring_number); + clutter_event_get_pad_details (event, &number, NULL, NULL, NULL); + ring = g_list_nth_data (group->rings, number); if (!ring) return FALSE; @@ -237,11 +244,13 @@ handle_pad_strip_event (MetaWaylandTabletPadGroup *group, const ClutterEvent *event) { MetaWaylandTabletPadStrip *strip; + uint32_t number; - if (event->type != CLUTTER_PAD_STRIP) + if (clutter_event_type (event) != CLUTTER_PAD_STRIP) return FALSE; - strip = g_list_nth_data (group->strips, event->pad_strip.strip_number); + clutter_event_get_pad_details (event, &number, NULL, NULL, NULL); + strip = g_list_nth_data (group->strips, number); if (!strip) return FALSE; @@ -285,9 +294,10 @@ meta_wayland_tablet_pad_group_handle_event (MetaWaylandTabletPadGroup *group, { case CLUTTER_PAD_BUTTON_PRESS: case CLUTTER_PAD_BUTTON_RELEASE: - if (meta_wayland_tablet_pad_group_is_mode_switch_button (group, event->pad_button.button)) + if (meta_wayland_tablet_pad_group_is_mode_switch_button (group, + clutter_event_get_button (event))) { - if (event->type == CLUTTER_PAD_BUTTON_PRESS) + if (clutter_event_type (event) == CLUTTER_PAD_BUTTON_PRESS) broadcast_group_mode (group, clutter_event_get_time (event)); return TRUE; } diff --git a/src/wayland/meta-wayland-tablet-pad-ring.c b/src/wayland/meta-wayland-tablet-pad-ring.c index 55e45eaa2..187d87f52 100644 --- a/src/wayland/meta-wayland-tablet-pad-ring.c +++ b/src/wayland/meta-wayland-tablet-pad-ring.c @@ -121,13 +121,17 @@ meta_wayland_tablet_pad_ring_handle_event (MetaWaylandTabletPadRing *ring, enum zwp_tablet_pad_ring_v2_source source; gboolean source_known = FALSE; struct wl_resource *resource; + ClutterInputDevicePadSource ring_source; + double angle; if (wl_list_empty (focus_resources)) return FALSE; - if (event->type != CLUTTER_PAD_RING) + if (clutter_event_type (event) != CLUTTER_PAD_RING) return FALSE; - if (event->pad_ring.ring_source == CLUTTER_INPUT_DEVICE_PAD_SOURCE_FINGER) + clutter_event_get_pad_details (event, NULL, NULL, &ring_source, &angle); + + if (ring_source == CLUTTER_INPUT_DEVICE_PAD_SOURCE_FINGER) { source = ZWP_TABLET_PAD_RING_V2_SOURCE_FINGER; source_known = TRUE; @@ -135,8 +139,6 @@ meta_wayland_tablet_pad_ring_handle_event (MetaWaylandTabletPadRing *ring, wl_resource_for_each (resource, focus_resources) { - gdouble angle = event->pad_ring.angle; - if (source_known) zwp_tablet_pad_ring_v2_send_source (resource, source); diff --git a/src/wayland/meta-wayland-tablet-pad-strip.c b/src/wayland/meta-wayland-tablet-pad-strip.c index b320dbf80..4ab8ae1e6 100644 --- a/src/wayland/meta-wayland-tablet-pad-strip.c +++ b/src/wayland/meta-wayland-tablet-pad-strip.c @@ -121,13 +121,17 @@ meta_wayland_tablet_pad_strip_handle_event (MetaWaylandTabletPadStrip *strip, enum zwp_tablet_pad_strip_v2_source source; gboolean source_known = FALSE; struct wl_resource *resource; + ClutterInputDevicePadSource strip_source; + double value; if (wl_list_empty (focus_resources)) return FALSE; - if (event->type != CLUTTER_PAD_STRIP) + if (clutter_event_type (event) != CLUTTER_PAD_STRIP) return FALSE; - if (event->pad_strip.strip_source == CLUTTER_INPUT_DEVICE_PAD_SOURCE_FINGER) + clutter_event_get_pad_details (event, NULL, NULL, &strip_source, &value); + + if (strip_source == CLUTTER_INPUT_DEVICE_PAD_SOURCE_FINGER) { source = ZWP_TABLET_PAD_STRIP_V2_SOURCE_FINGER; source_known = TRUE; @@ -135,8 +139,6 @@ meta_wayland_tablet_pad_strip_handle_event (MetaWaylandTabletPadStrip *strip, wl_resource_for_each (resource, focus_resources) { - gdouble value = event->pad_strip.value; - if (source_known) zwp_tablet_pad_strip_v2_send_source (resource, source); diff --git a/src/wayland/meta-wayland-tablet-pad.c b/src/wayland/meta-wayland-tablet-pad.c index eb4276b85..219353dba 100644 --- a/src/wayland/meta-wayland-tablet-pad.c +++ b/src/wayland/meta-wayland-tablet-pad.c @@ -304,13 +304,16 @@ handle_pad_button_event (MetaWaylandTabletPad *pad, enum zwp_tablet_pad_v2_button_state button_state; struct wl_list *focus_resources = &pad->focus_resource_list; struct wl_resource *resource; + ClutterEventType event_type; if (wl_list_empty (focus_resources)) return FALSE; - if (event->type == CLUTTER_PAD_BUTTON_PRESS) + event_type = clutter_event_type (event); + + if (event_type == CLUTTER_PAD_BUTTON_PRESS) button_state = ZWP_TABLET_PAD_V2_BUTTON_STATE_PRESSED; - else if (event->type == CLUTTER_PAD_BUTTON_RELEASE) + else if (event_type == CLUTTER_PAD_BUTTON_RELEASE) button_state = ZWP_TABLET_PAD_V2_BUTTON_STATE_RELEASED; else return FALSE; @@ -319,7 +322,8 @@ handle_pad_button_event (MetaWaylandTabletPad *pad, { zwp_tablet_pad_v2_send_button (resource, clutter_event_get_time (event), - event->pad_button.button, button_state); + clutter_event_get_button (event), + button_state); } return TRUE; @@ -336,7 +340,7 @@ meta_wayland_tablet_pad_handle_event_action (MetaWaylandTabletPad *pad, mapper = display_from_pad (pad)->pad_action_mapper; if (meta_pad_action_mapper_is_button_grabbed (mapper, device, - event->pad_button.button)) + clutter_event_get_button (event))) return TRUE; return FALSE; diff --git a/src/wayland/meta-wayland-tablet-seat.c b/src/wayland/meta-wayland-tablet-seat.c index c16eddc81..c1866869a 100644 --- a/src/wayland/meta-wayland-tablet-seat.c +++ b/src/wayland/meta-wayland-tablet-seat.c @@ -383,7 +383,7 @@ meta_wayland_tablet_seat_update (MetaWaylandTabletSeat *tablet_seat, device = clutter_event_get_source_device (event); - switch (event->type) + switch (clutter_event_type (event)) { case CLUTTER_PROXIMITY_IN: case CLUTTER_PROXIMITY_OUT: @@ -422,7 +422,7 @@ meta_wayland_tablet_seat_handle_event (MetaWaylandTabletSeat *tablet_seat, MetaWaylandTabletTool *tool = NULL; MetaWaylandTabletPad *pad = NULL; - switch (event->type) + switch (clutter_event_type (event)) { case CLUTTER_PROXIMITY_IN: case CLUTTER_PROXIMITY_OUT: diff --git a/src/wayland/meta-wayland-tablet-tool.c b/src/wayland/meta-wayland-tablet-tool.c index d207ae745..c61060b99 100644 --- a/src/wayland/meta-wayland-tablet-tool.c +++ b/src/wayland/meta-wayland-tablet-tool.c @@ -549,14 +549,20 @@ static void meta_wayland_tablet_tool_account_button (MetaWaylandTabletTool *tool, const ClutterEvent *event) { - if (event->type == CLUTTER_BUTTON_PRESS) + ClutterEventType event_type; + int button; + + event_type = clutter_event_type (event); + button = clutter_event_get_button (event); + + if (event_type == CLUTTER_BUTTON_PRESS) { - tool->pressed_buttons |= 1 << (event->button.button - 1); + tool->pressed_buttons |= 1 << (button - 1); tool->button_count++; } - else if (event->type == CLUTTER_BUTTON_RELEASE) + else if (event_type == CLUTTER_BUTTON_RELEASE) { - tool->pressed_buttons &= ~(1 << (event->button.button - 1)); + tool->pressed_buttons &= ~(1 << (button - 1)); tool->button_count--; } } @@ -670,7 +676,7 @@ broadcast_button (MetaWaylandTabletTool *tool, wl_resource_for_each (resource, &tool->focus_resource_list) { zwp_tablet_tool_v2_send_button (resource, tool->button_serial, button, - event->type == CLUTTER_BUTTON_PRESS ? + clutter_event_type (event) == CLUTTER_BUTTON_PRESS ? ZWP_TABLET_TOOL_V2_BUTTON_STATE_PRESSED : ZWP_TABLET_TOOL_V2_BUTTON_STATE_RELEASED); } @@ -683,9 +689,10 @@ broadcast_axis (MetaWaylandTabletTool *tool, { struct wl_resource *resource; uint32_t value; - double val; + double *axes, val; - val = event->motion.axes[axis]; + axes = clutter_event_get_axes (event, NULL); + val = axes[axis]; value = val * TABLET_AXIS_MAX; wl_resource_for_each (resource, &tool->focus_resource_list) @@ -712,10 +719,11 @@ broadcast_tilt (MetaWaylandTabletTool *tool, const ClutterEvent *event) { struct wl_resource *resource; - gdouble xtilt, ytilt; + double *axes, xtilt, ytilt; - xtilt = event->motion.axes[CLUTTER_INPUT_AXIS_XTILT]; - ytilt = event->motion.axes[CLUTTER_INPUT_AXIS_YTILT]; + axes = clutter_event_get_axes (event, NULL); + xtilt = axes[CLUTTER_INPUT_AXIS_XTILT]; + ytilt = axes[CLUTTER_INPUT_AXIS_YTILT]; wl_resource_for_each (resource, &tool->focus_resource_list) { @@ -730,9 +738,10 @@ broadcast_rotation (MetaWaylandTabletTool *tool, const ClutterEvent *event) { struct wl_resource *resource; - gdouble rotation; + double *axes, rotation; - rotation = event->motion.axes[CLUTTER_INPUT_AXIS_ROTATION]; + axes = clutter_event_get_axes (event, NULL); + rotation = axes[CLUTTER_INPUT_AXIS_ROTATION]; wl_resource_for_each (resource, &tool->focus_resource_list) { @@ -746,10 +755,11 @@ broadcast_wheel (MetaWaylandTabletTool *tool, const ClutterEvent *event) { struct wl_resource *resource; - gdouble angle; + double *axes, angle; gint32 clicks = 0; - angle = event->motion.axes[CLUTTER_INPUT_AXIS_WHEEL]; + axes = clutter_event_get_axes (event, NULL); + angle = axes[CLUTTER_INPUT_AXIS_WHEEL]; /* FIXME: Perform proper angle-to-clicks accumulation elsewhere */ if (angle > 0.01) @@ -805,15 +815,21 @@ static void handle_button_event (MetaWaylandTabletTool *tool, const ClutterEvent *event) { + ClutterEventType event_type; + int button; + if (!tool->focus_surface) return; - if (event->type == CLUTTER_BUTTON_PRESS && tool->button_count == 1) + event_type = clutter_event_type (event); + button = clutter_event_get_button (event); + + if (event_type == CLUTTER_BUTTON_PRESS && tool->button_count == 1) clutter_event_get_coords (event, &tool->grab_x, &tool->grab_y); - if (event->type == CLUTTER_BUTTON_PRESS && event->button.button == 1) + if (event_type == CLUTTER_BUTTON_PRESS && button == 1) broadcast_down (tool, event); - else if (event->type == CLUTTER_BUTTON_RELEASE && event->button.button == 1) + else if (event_type == CLUTTER_BUTTON_RELEASE && button == 1) broadcast_up (tool, event); else broadcast_button (tool, event); @@ -825,7 +841,7 @@ void meta_wayland_tablet_tool_update (MetaWaylandTabletTool *tool, const ClutterEvent *event) { - switch (event->type) + switch (clutter_event_type (event)) { case CLUTTER_BUTTON_PRESS: case CLUTTER_BUTTON_RELEASE: @@ -864,7 +880,7 @@ gboolean meta_wayland_tablet_tool_handle_event (MetaWaylandTabletTool *tool, const ClutterEvent *event) { - switch (event->type) + switch (clutter_event_type (event)) { case CLUTTER_PROXIMITY_IN: /* We don't have much info here to make anything useful out of it, diff --git a/src/wayland/meta-wayland-text-input.c b/src/wayland/meta-wayland-text-input.c index 8cc57d878..e69e36c6f 100644 --- a/src/wayland/meta-wayland-text-input.c +++ b/src/wayland/meta-wayland-text-input.c @@ -814,12 +814,16 @@ gboolean meta_wayland_text_input_update (MetaWaylandTextInput *text_input, const ClutterEvent *event) { + ClutterEventType event_type; + if (!text_input->surface || !clutter_input_focus_is_focused (text_input->input_focus)) return FALSE; - if (event->type == CLUTTER_KEY_PRESS || - event->type == CLUTTER_KEY_RELEASE) + event_type = clutter_event_type (event); + + if (event_type == CLUTTER_KEY_PRESS || + event_type == CLUTTER_KEY_RELEASE) return clutter_input_focus_filter_event (text_input->input_focus, event); return FALSE; @@ -829,21 +833,24 @@ gboolean meta_wayland_text_input_handle_event (MetaWaylandTextInput *text_input, const ClutterEvent *event) { + ClutterEventType event_type; gboolean retval; if (!text_input->surface || !clutter_input_focus_is_focused (text_input->input_focus)) return FALSE; - if ((event->type == CLUTTER_KEY_PRESS || - event->type == CLUTTER_KEY_RELEASE) && + event_type = clutter_event_type (event); + + if ((event_type == CLUTTER_KEY_PRESS || + event_type == CLUTTER_KEY_RELEASE) && clutter_event_get_flags (event) & CLUTTER_EVENT_FLAG_INPUT_METHOD) meta_wayland_text_input_focus_flush_done (text_input->input_focus); retval = clutter_input_focus_process_event (text_input->input_focus, event); - if (event->type == CLUTTER_BUTTON_PRESS || - event->type == CLUTTER_TOUCH_BEGIN) + if (event_type == CLUTTER_BUTTON_PRESS || + event_type == CLUTTER_TOUCH_BEGIN) { MetaWaylandSurface *surface = NULL; MetaBackend *backend; diff --git a/src/wayland/meta-wayland-touch.c b/src/wayland/meta-wayland-touch.c index 6126e2850..93364a46c 100644 --- a/src/wayland/meta-wayland-touch.c +++ b/src/wayland/meta-wayland-touch.c @@ -223,10 +223,12 @@ meta_wayland_touch_update (MetaWaylandTouch *touch, { MetaWaylandTouchInfo *touch_info; ClutterEventSequence *sequence; + ClutterEventType event_type; sequence = clutter_event_get_event_sequence (event); + event_type = clutter_event_type (event); - if (event->type == CLUTTER_TOUCH_BEGIN) + if (event_type == CLUTTER_TOUCH_BEGIN) { MetaWaylandSurface *surface = NULL; MetaBackend *backend; @@ -256,15 +258,15 @@ meta_wayland_touch_update (MetaWaylandTouch *touch, if (!touch_info) return; - if (event->type != CLUTTER_TOUCH_BEGIN && + if (event_type != CLUTTER_TOUCH_BEGIN && !touch_info->begin_delivered) { g_hash_table_remove (touch->touches, sequence); return; } - if (event->type == CLUTTER_TOUCH_BEGIN || - event->type == CLUTTER_TOUCH_END) + if (event_type == CLUTTER_TOUCH_BEGIN || + event_type == CLUTTER_TOUCH_END) { MetaWaylandInputDevice *input_device = META_WAYLAND_INPUT_DEVICE (touch); @@ -439,7 +441,7 @@ gboolean meta_wayland_touch_handle_event (MetaWaylandTouch *touch, const ClutterEvent *event) { - switch (event->type) + switch (clutter_event_type (event)) { case CLUTTER_TOUCH_BEGIN: handle_touch_begin (touch, event);