diff options
author | Aaron Carlisle <carlisle.b3d@gmail.com> | 2021-10-21 22:29:56 +0300 |
---|---|---|
committer | Aaron Carlisle <carlisle.b3d@gmail.com> | 2021-10-21 22:30:17 +0300 |
commit | be171b295fc7defa451ef8eba8bc9dbf260c511a (patch) | |
tree | 3b7914c3d2de08648aa49f563027e528da8731d4 /source/blender/windowmanager | |
parent | be558d2d9775b3d9d1f84d316d2675a205932d92 (diff) |
Cleanup: Use array utility for cursor events
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_query.c | 6 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 36 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_operators.c | 14 |
3 files changed, 19 insertions, 37 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_query.c b/source/blender/windowmanager/intern/wm_event_query.c index 5687e024975..9ee114674ed 100644 --- a/source/blender/windowmanager/intern/wm_event_query.c +++ b/source/blender/windowmanager/intern/wm_event_query.c @@ -315,10 +315,8 @@ bool WM_event_drag_test_with_delta(const wmEvent *event, const int drag_delta[2] bool WM_event_drag_test(const wmEvent *event, const int prev_xy[2]) { - const int drag_delta[2] = { - prev_xy[0] - event->xy[0], - prev_xy[1] - event->xy[1], - }; + int drag_delta[2]; + sub_v2_v2v2_int(drag_delta, prev_xy, event->xy); return WM_event_drag_test_with_delta(event, drag_delta); } diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 3c0853cf926..df976d9a4cd 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -152,13 +152,11 @@ wmEvent *WM_event_add_simulate(wmWindow *win, const wmEvent *event_to_add) /* Logic for setting previous value is documented on the #wmEvent struct, * see #wm_event_add_ghostevent for the implementation of logic this follows. */ - - win->eventstate->xy[0] = event->xy[0]; - win->eventstate->xy[1] = event->xy[1]; + copy_v2_v2_int(win->eventstate->xy, event->xy); if (event->type == MOUSEMOVE) { - win->eventstate->prev_xy[0] = event->prev_xy[0] = win->eventstate->xy[0]; - win->eventstate->prev_xy[1] = event->prev_xy[1] = win->eventstate->xy[1]; + copy_v2_v2_int(win->eventstate->prev_xy, win->eventstate->xy); + copy_v2_v2_int(event->prev_xy, win->eventstate->xy); } else if (ISMOUSE_BUTTON(event->type) || ISKEYBOARD(event->type)) { win->eventstate->prev_val = event->prev_val = win->eventstate->val; @@ -3176,13 +3174,11 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers) if (WM_event_drag_test(event, event->prev_click_xy)) { win->event_queue_check_drag_handled = true; - int x = event->xy[0]; - int y = event->xy[1]; + int xy[2] = {UNPACK2(event->xy)}; short val = event->val; short type = event->type; - event->xy[0] = event->prev_click_xy[0]; - event->xy[1] = event->prev_click_xy[1]; + copy_v2_v2_int(event->xy, event->prev_click_xy); event->val = KM_CLICK_DRAG; event->type = event->prev_type; @@ -3192,8 +3188,7 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers) event->val = val; event->type = type; - event->xy[0] = x; - event->xy[1] = y; + copy_v2_v2_int(event->xy, xy); win->event_queue_check_click = false; if (!wm_action_not_handled(action)) { @@ -3238,11 +3233,9 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers) else { /* Position is where the actual click happens, for more * accurate selecting in case the mouse drifts a little. */ - int x = event->xy[0]; - int y = event->xy[1]; + int xy[2] = {UNPACK2(event->xy)}; - event->xy[0] = event->prev_click_xy[0]; - event->xy[1] = event->prev_click_xy[1]; + copy_v2_v2_int(event->xy, event->prev_click_xy); event->val = KM_CLICK; CLOG_INFO(WM_LOG_HANDLERS, 1, "handling CLICK"); @@ -3250,8 +3243,7 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers) action |= wm_handlers_do_intern(C, win, event, handlers); event->val = KM_RELEASE; - event->xy[0] = x; - event->xy[1] = y; + copy_v2_v2_int(event->xy, xy); } } } @@ -3788,8 +3780,7 @@ void wm_event_do_handlers(bContext *C) } /* Update previous mouse position for following events to use. */ - win->eventstate->prev_xy[0] = event->xy[0]; - win->eventstate->prev_xy[1] = event->xy[1]; + copy_v2_v2_int(win->eventstate->prev_xy, event->xy); /* Unlink and free here, blender-quit then frees all. */ BLI_remlink(&win->event_queue, event); @@ -4181,10 +4172,10 @@ wmEventHandler_Keymap *WM_event_add_keymap_handler_priority(ListBase *handlers, static bool event_or_prev_in_rect(const wmEvent *event, const rcti *rect) { - if (BLI_rcti_isect_pt(rect, event->xy[0], event->xy[1])) { + if (BLI_rcti_isect_pt_v(rect, event->xy)) { return true; } - if (event->type == MOUSEMOVE && BLI_rcti_isect_pt(rect, event->prev_xy[0], event->prev_xy[1])) { + if (event->type == MOUSEMOVE && BLI_rcti_isect_pt_v(rect, event->prev_xy)) { return true; } return false; @@ -4682,8 +4673,7 @@ static wmWindow *wm_event_cursor_other_windows(wmWindowManager *wm, wmWindow *wi wmWindow *win_other = WM_window_find_under_cursor(wm, win, win, mval, mval); if (win_other) { - event->xy[0] = mval[0]; - event->xy[1] = mval[1]; + copy_v2_v2_int(event->xy, mval); return win_other; } } diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index b6a4a3a94bf..98ae1eb62dc 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -2274,11 +2274,8 @@ static void radial_control_set_initial_mouse(RadialControl *rc, const wmEvent *e float d[2] = {0, 0}; float zoom[2] = {1, 1}; - rc->initial_mouse[0] = event->xy[0]; - rc->initial_mouse[1] = event->xy[1]; - - rc->initial_co[0] = event->xy[0]; - rc->initial_co[1] = event->xy[1]; + copy_v2_v2_int(rc->initial_mouse, event->xy); + copy_v2_v2_int(rc->initial_co, event->xy); switch (rc->subtype) { case PROP_NONE: @@ -2954,14 +2951,12 @@ static int radial_control_modal(bContext *C, wmOperator *op, const wmEvent *even if (!has_numInput) { if (rc->slow_mode) { if (rc->subtype == PROP_ANGLE) { - const float position[2] = {event->xy[0], event->xy[1]}; - /* calculate the initial angle here first */ delta[0] = rc->initial_mouse[0] - rc->slow_mouse[0]; delta[1] = rc->initial_mouse[1] - rc->slow_mouse[1]; /* precision angle gets calculated from dial and gets added later */ - angle_precision = -0.1f * BLI_dial_angle(rc->dial, position); + angle_precision = -0.1f * BLI_dial_angle(rc->dial, event->xy); } else { delta[0] = rc->initial_mouse[0] - rc->slow_mouse[0]; @@ -2984,8 +2979,7 @@ static int radial_control_modal(bContext *C, wmOperator *op, const wmEvent *even } } else { - delta[0] = rc->initial_mouse[0] - event->xy[0]; - delta[1] = rc->initial_mouse[1] - event->xy[1]; + sub_v2_v2v2(delta, rc->initial_mouse, event->xy); if (rc->zoom_prop) { RNA_property_float_get_array(&rc->zoom_ptr, rc->zoom_prop, zoom); delta[0] /= zoom[0]; |