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:
Diffstat (limited to 'source/blender/windowmanager/intern')
-rw-r--r--source/blender/windowmanager/intern/wm_event_query.c6
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c36
-rw-r--r--source/blender/windowmanager/intern/wm_operators.c14
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];