[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26346] trunk/blender/source/blender/ windowmanager/intern/wm_event_system.c: [#20792] MMB emulation, release broken
Martin Poirier
theeth at yahoo.com
Wed Jan 27 18:01:41 CET 2010
Revision: 26346
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26346
Author: theeth
Date: 2010-01-27 18:01:41 +0100 (Wed, 27 Jan 2010)
Log Message:
-----------
[#20792] MMB emulation, release broken
Store last mmb event value to make emulation work when modifier keys are released first.
This is done in a not so nice way for now. Eventually, I'd like for emulation keys to have their own data structures (user creatable and all that)
Modified Paths:
--------------
trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
Modified: trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_event_system.c 2010-01-27 16:13:05 UTC (rev 26345)
+++ trunk/blender/source/blender/windowmanager/intern/wm_event_system.c 2010-01-27 17:01:41 UTC (rev 26346)
@@ -808,20 +808,24 @@
static void wm_eventemulation(wmEvent *event)
{
+ static int mmb_emulated = 0; /* this should be in a data structure somwhere */
+
/* middlemouse emulation */
if(U.flag & USER_TWOBUTTONMOUSE) {
- if(event->type == LEFTMOUSE && event->alt) {
+ if(event->type == LEFTMOUSE && (event->alt || mmb_emulated == KM_PRESS)) {
event->type = MIDDLEMOUSE;
event->alt = 0;
+ mmb_emulated = event->val;
}
}
#ifdef __APPLE__
/* rightmouse emulation */
if(U.flag & USER_TWOBUTTONMOUSE) {
- if(event->type == LEFTMOUSE && event->oskey) {
+ if(event->type == LEFTMOUSE && (event->oskey || mmb_emulated == KM_PRESS) {
event->type = RIGHTMOUSE;
event->oskey = 0;
+ mmb_emulated = event->val;
}
}
#endif
More information about the Bf-blender-cvs
mailing list