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:
authorTon Roosendaal <ton@blender.org>2009-01-01 17:57:04 +0300
committerTon Roosendaal <ton@blender.org>2009-01-01 17:57:04 +0300
commita1961436f564ad885a014dc964d443378a4b9617 (patch)
tree5dd883b97048d8474b5c5f31302686610c2084c0 /source/blender/windowmanager
parente9a3b4f85df2261cafea0bfc9f0a885708cdf9d6 (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.h1
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c18
-rw-r--r--source/blender/windowmanager/wm_event_types.h7
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 */