WM: backport event/keymap type util from 2.8
This commit is contained in:
@@ -143,6 +143,7 @@ float WM_cursor_pressure (const struct wmWindow *win);
|
|||||||
|
|
||||||
/* event map */
|
/* event map */
|
||||||
int WM_userdef_event_map(int kmitype);
|
int WM_userdef_event_map(int kmitype);
|
||||||
|
int WM_userdef_event_type_from_keymap_type(int kmitype);
|
||||||
|
|
||||||
/* handlers */
|
/* handlers */
|
||||||
|
|
||||||
|
|||||||
@@ -1610,6 +1610,36 @@ int WM_userdef_event_map(int kmitype)
|
|||||||
return kmitype;
|
return kmitype;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use so we can check if 'wmEvent.type' is released in modal operators.
|
||||||
|
*
|
||||||
|
* An alternative would be to add a 'wmEvent.type_nokeymap'... or similar.
|
||||||
|
*/
|
||||||
|
int WM_userdef_event_type_from_keymap_type(int kmitype)
|
||||||
|
{
|
||||||
|
switch (kmitype) {
|
||||||
|
case SELECTMOUSE:
|
||||||
|
return (U.flag & USER_LMOUSESELECT) ? LEFTMOUSE : RIGHTMOUSE;
|
||||||
|
case ACTIONMOUSE:
|
||||||
|
return (U.flag & USER_LMOUSESELECT) ? RIGHTMOUSE : LEFTMOUSE;
|
||||||
|
case EVT_TWEAK_S:
|
||||||
|
return (U.flag & USER_LMOUSESELECT) ? LEFTMOUSE : RIGHTMOUSE;
|
||||||
|
case EVT_TWEAK_A:
|
||||||
|
return (U.flag & USER_LMOUSESELECT) ? RIGHTMOUSE : LEFTMOUSE;
|
||||||
|
case EVT_TWEAK_L:
|
||||||
|
return LEFTMOUSE;
|
||||||
|
case EVT_TWEAK_M:
|
||||||
|
return MIDDLEMOUSE;
|
||||||
|
case EVT_TWEAK_R:
|
||||||
|
return RIGHTMOUSE;
|
||||||
|
case WHEELOUTMOUSE:
|
||||||
|
return (U.uiflag & USER_WHEELZOOMDIR) ? WHEELUPMOUSE : WHEELDOWNMOUSE;
|
||||||
|
case WHEELINMOUSE:
|
||||||
|
return (U.uiflag & USER_WHEELZOOMDIR) ? WHEELDOWNMOUSE : WHEELUPMOUSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return kmitype;
|
||||||
|
}
|
||||||
|
|
||||||
static int wm_eventmatch(const wmEvent *winevent, wmKeyMapItem *kmi)
|
static int wm_eventmatch(const wmEvent *winevent, wmKeyMapItem *kmi)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user