Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <campbell@blender.org>2022-03-01 13:33:16 +0300
committerCampbell Barton <campbell@blender.org>2022-03-01 13:41:08 +0300
commit90ec634135a0a79534fc34146c4860805279a3a9 (patch)
tree872b12d9b4adc5d70de4734cae41f167a6480305 /source/blender/windowmanager/intern/wm_event_system.c
parent4b9c77a19aa359b5ab4b86e05cff1c8627d05a1e (diff)
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.
Diffstat (limited to 'source/blender/windowmanager/intern/wm_event_system.c')
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c5
1 files changed, 3 insertions, 2 deletions
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)