Fix error converting simulated events press/release to clicks
Move logic that sets previous event state into WM_event_add_simulate.
This commit is contained in:
@@ -647,11 +647,6 @@ static wmEvent *rna_Window_event_add_simulate(wmWindow *win,
|
||||
e.alt = alt;
|
||||
e.oskey = oskey;
|
||||
|
||||
e.prevx = win->eventstate->x;
|
||||
e.prevy = win->eventstate->y;
|
||||
e.prevval = win->eventstate->val;
|
||||
e.prevtype = win->eventstate->type;
|
||||
|
||||
e.ascii = '\0';
|
||||
e.utf8_buf[0] = '\0';
|
||||
if (unicode != NULL) {
|
||||
|
||||
@@ -148,8 +148,29 @@ wmEvent *WM_event_add_simulate(wmWindow *win, const wmEvent *event_to_add)
|
||||
return NULL;
|
||||
}
|
||||
wmEvent *event = wm_event_add(win, event_to_add);
|
||||
|
||||
win->eventstate->x = event->x;
|
||||
win->eventstate->y = event->y;
|
||||
|
||||
win->eventstate->prevval = event->prevval = win->eventstate->val;
|
||||
win->eventstate->prevtype = event->prevtype = win->eventstate->type;
|
||||
win->eventstate->prevx = event->prevx = win->eventstate->x;
|
||||
win->eventstate->prevy = event->prevy = win->eventstate->y;
|
||||
|
||||
if (event->type == MOUSEMOVE) {
|
||||
/* Pass. */
|
||||
}
|
||||
else {
|
||||
win->eventstate->val = event->val;
|
||||
win->eventstate->type = event->type;
|
||||
|
||||
if (ISMOUSE_BUTTON(event->type)) {
|
||||
if (event->val == KM_PRESS) {
|
||||
win->eventstate->prevclickx = event->x;
|
||||
win->eventstate->prevclicky = event->y;
|
||||
}
|
||||
}
|
||||
}
|
||||
return event;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user