From 90ec634135a0a79534fc34146c4860805279a3a9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 1 Mar 2022 21:33:16 +1100 Subject: Fix incorrect drag-event threshold when releasing modifiers early db4313610cab18933c1b1b1348720ea241b9d91e added support for modifier keys to be released while dragging. The key release events set wmEvent.prev_type which is used select the drag threshold, causing the wrong threshold to be used. Add wmEvent.prev_click_type which is only set when the drag begins. --- source/blender/windowmanager/intern/wm_event_system.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender/windowmanager/intern/wm_event_system.c') diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 4e9a430b380..ee07e90f4de 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -4705,10 +4705,11 @@ static void wm_event_prev_values_set(wmEvent *event, wmEvent *event_state) static void wm_event_prev_click_set(wmEvent *event, wmEvent *event_state) { event->prev_click_time = event_state->prev_click_time = PIL_check_seconds_timer(); - event->prev_click_xy[0] = event_state->prev_click_xy[0] = event_state->xy[0]; - event->prev_click_xy[1] = event_state->prev_click_xy[1] = event_state->xy[1]; + event->prev_click_type = event_state->prev_click_type = event_state->type; event->prev_click_modifier = event_state->prev_click_modifier = event_state->modifier; event->prev_click_keymodifier = event_state->prev_click_keymodifier = event_state->keymodifier; + event->prev_click_xy[0] = event_state->prev_click_xy[0] = event_state->xy[0]; + event->prev_click_xy[1] = event_state->prev_click_xy[1] = event_state->xy[1]; } static wmEvent *wm_event_add_mousemove(wmWindow *win, const wmEvent *event) -- cgit v1.2.3