diff options
author | Ton Roosendaal <ton@blender.org> | 2009-01-01 17:57:04 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2009-01-01 17:57:04 +0300 |
commit | a1961436f564ad885a014dc964d443378a4b9617 (patch) | |
tree | 5dd883b97048d8474b5c5f31302686610c2084c0 /source/blender/windowmanager | |
parent | e9a3b4f85df2261cafea0bfc9f0a885708cdf9d6 (diff) |
2.5
- Made scrollwheel behave uniform for zooming. It uses the UserDef
to map what's in our out. Use keymap entries WHEELINMOUSE and
WHEELOUTMOUSE to trigger this. Also removed the feature to store
in event->val the direction, it was conflicting with KM_ANY.
- Added more default poll callbacks, use for generic ops things
like ED_operator_object_active.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/WM_types.h | 1 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 18 | ||||
-rw-r--r-- | source/blender/windowmanager/wm_event_types.h | 7 |
3 files changed, 21 insertions, 5 deletions
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index 770c3481b8f..fe9650094a2 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -102,6 +102,7 @@ typedef struct wmEvent { #define KM_RELEASE 0 #define KM_PRESS 1 + /* ************** UI Handler ***************** */ #define WM_UI_HANDLER_CONTINUE 0 diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 6e53b130817..be977530fad 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -534,19 +534,31 @@ static int wm_eventmatch(wmEvent *winevent, wmKeymapItem *kmi) { int kmitype= kmi->type; - /* first do default mappings */ + /* first do userdef mappings */ if(kmitype==SELECTMOUSE) { if(U.flag & USER_LMOUSESELECT) kmitype= LEFTMOUSE; else kmitype= RIGHTMOUSE; } - if(kmitype==ACTIONMOUSE) { + else if(kmitype==ACTIONMOUSE) { if(U.flag & USER_LMOUSESELECT) kmitype= RIGHTMOUSE; else kmitype= LEFTMOUSE; } + else if(kmitype==WHEELOUTMOUSE) { + if(U.uiflag & USER_WHEELZOOMDIR) + kmitype= WHEELUPMOUSE; + else + kmitype= WHEELDOWNMOUSE; + } + else if(kmitype==WHEELINMOUSE) { + if(U.uiflag & USER_WHEELZOOMDIR) + kmitype= WHEELDOWNMOUSE; + else + kmitype= WHEELUPMOUSE; + } /* the matching rules */ if(winevent->type!=kmitype) return 0; @@ -1133,7 +1145,7 @@ void wm_event_add_ghostevent(wmWindow *win, int type, void *customdata) else event.type= WHEELDOWNMOUSE; - event.val= wheelData->z; /* currently -1 or +1, see ghost for improvements here... */ + event.val= KM_PRESS; wm_event_add(win, &event); break; diff --git a/source/blender/windowmanager/wm_event_types.h b/source/blender/windowmanager/wm_event_types.h index 91427579c29..87dbd337d32 100644 --- a/source/blender/windowmanager/wm_event_types.h +++ b/source/blender/windowmanager/wm_event_types.h @@ -51,9 +51,12 @@ /* only use if you want user option switch possible */ #define ACTIONMOUSE 0x005 #define SELECTMOUSE 0x006 - + /* defaults from ghost */ #define WHEELUPMOUSE 0x00a -#define WHEELDOWNMOUSE 0x00b +#define WHEELDOWNMOUSE 0x00b + /* mapped with userdef */ +#define WHEELINMOUSE 0x00c +#define WHEELOUTMOUSE 0x00d /* SYSTEM : 0x01x */ |