WM: ensure is_repeat isn't copied from the last event

This means if a keymap item is set to ignore repeat events,
it may do so accidentally from this setting being copied.
This commit is contained in:
Campbell Barton 2020-10-21 20:43:25 +11:00
parent b4017ccb64
commit d782bad62d
Notes: blender-bot 2023-02-14 11:28:39 +01:00
Referenced by commit 88660d67a4, WM: ensure is_repeat isn't set for mouse-move events
6 changed files with 8 additions and 0 deletions

View File

@ -6757,6 +6757,7 @@ void UI_but_focus_on_enter_event(wmWindow *win, uiBut *but)
event.type = EVT_BUT_OPEN;
event.val = KM_PRESS;
event.is_repeat = false;
event.customdata = but;
event.customdatafree = false;

View File

@ -8546,6 +8546,7 @@ void ui_but_activate_event(bContext *C, ARegion *region, uiBut *but)
wm_event_init_from_window(win, &event);
event.type = EVT_BUT_OPEN;
event.val = KM_PRESS;
event.is_repeat = false;
event.customdata = but;
event.customdatafree = false;

View File

@ -976,6 +976,7 @@ static void actionzone_apply(bContext *C, wmOperator *op, int type)
}
event.val = KM_NOTHING;
event.is_repeat = false;
event.customdata = op->customdata;
event.customdatafree = true;
op->customdata = NULL;

View File

@ -663,6 +663,7 @@ void wm_event_handler_ui_cancel_ex(bContext *C,
wm_event_init_from_window(win, &event);
event.type = EVT_BUT_CANCEL;
event.val = reactivate_button ? 0 : 1;
event.is_repeat = false;
handler->handle_fn(C, &event, handler->user_data);
}
}

View File

@ -519,6 +519,7 @@ static void gesture_tweak_modal(bContext *C, const wmEvent *event)
tevent.type = EVT_TWEAK_M;
}
tevent.val = val;
tevent.is_repeat = false;
/* mouse coords! */
/* important we add immediately after this event, so future mouse releases

View File

@ -1301,6 +1301,7 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr C_void_ptr
event.type = MOUSEMOVE;
event.prevx = event.x;
event.prevy = event.y;
event.is_repeat = false;
wm_event_add(win, &event);
@ -1432,6 +1433,7 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr C_void_ptr
event.type = MOUSEMOVE;
event.prevx = event.x;
event.prevy = event.y;
event.is_repeat = false;
/* No context change! C->wm->windrawable is drawable, or for area queues. */
wm->winactive = win;
@ -1568,6 +1570,7 @@ static int wm_window_timer(const bContext *C)
event.type = wt->event_type;
event.val = KM_NOTHING;
event.keymodifier = 0;
event.is_repeat = false;
event.custom = EVT_DATA_TIMER;
event.customdata = wt;
wm_event_add(win, &event);