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
path: root/intern
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2012-12-28 16:48:45 +0400
committerTon Roosendaal <ton@blender.org>2012-12-28 16:48:45 +0400
commit9f9e35c82a7c96e6f3a20b379f48109f4f8f03de (patch)
treefb6cad4e49a36dc2e7cdd2398a745b033dc9045f /intern
parentc04631f0bb716583e4678add34d09ac3494515ea (diff)
Bugfix #33681
Blender didn't detect properly whether event came from a mouse-wheel or from a trackpad in OS X. Now you can both, and both are handled independently. Removed back hack from 2 years ago - which disabled mouse wheel for laptops.
Diffstat (limited to 'intern')
-rw-r--r--intern/ghost/intern/GHOST_SystemCocoa.h3
-rw-r--r--intern/ghost/intern/GHOST_SystemCocoa.mm25
2 files changed, 4 insertions, 24 deletions
diff --git a/intern/ghost/intern/GHOST_SystemCocoa.h b/intern/ghost/intern/GHOST_SystemCocoa.h
index a1b372dac9a..8598bd0862f 100644
--- a/intern/ghost/intern/GHOST_SystemCocoa.h
+++ b/intern/ghost/intern/GHOST_SystemCocoa.h
@@ -293,9 +293,6 @@ protected:
*/
GHOST_TInt32 m_cursorDelta_x, m_cursorDelta_y;
- /** Multitouch trackpad availability */
- bool m_hasMultiTouchTrackpad;
-
};
#endif // __GHOST_SYSTEMCOCOA_H__
diff --git a/intern/ghost/intern/GHOST_SystemCocoa.mm b/intern/ghost/intern/GHOST_SystemCocoa.mm
index 39fd038d568..742bf944946 100644
--- a/intern/ghost/intern/GHOST_SystemCocoa.mm
+++ b/intern/ghost/intern/GHOST_SystemCocoa.mm
@@ -548,7 +548,6 @@ GHOST_SystemCocoa::GHOST_SystemCocoa()
int mib[2];
struct timeval boottime;
size_t len;
- char *rstring = NULL;
m_modifierMask =0;
m_cursorDelta_x=0;
@@ -566,25 +565,7 @@ GHOST_SystemCocoa::GHOST_SystemCocoa()
sysctl(mib, 2, &boottime, &len, NULL, 0);
m_start_time = ((boottime.tv_sec*1000)+(boottime.tv_usec/1000));
-
- //Detect multitouch trackpad
- mib[0] = CTL_HW;
- mib[1] = HW_MODEL;
- sysctl( mib, 2, NULL, &len, NULL, 0 );
- rstring = (char*)malloc( len );
- sysctl( mib, 2, rstring, &len, NULL, 0 );
-
- //Hack on MacBook revision, as multitouch avail. function missing
- //MacbookAir or MacBook version >= 5 (retina is MacBookPro10,1)
- if (strstr(rstring,"MacBookAir") ||
- (strstr(rstring,"MacBook") && (rstring[strlen(rstring)-3]>='5') && (rstring[strlen(rstring)-3]<='9')) ||
- (strstr(rstring,"MacBook") && (rstring[strlen(rstring)-4]>='1') && (rstring[strlen(rstring)-4]<='9')))
- m_hasMultiTouchTrackpad = true;
- else m_hasMultiTouchTrackpad = false;
-
- free( rstring );
- rstring = NULL;
-
+
m_ignoreWindowSizedMessages = false;
}
@@ -1579,7 +1560,9 @@ GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
case NSScrollWheel:
{
- if (!m_hasMultiTouchTrackpad) {
+
+ /* proper detection of trackpad or mouse scrollwheel */
+ if ([event momentumPhase] == NSEventPhaseNone && [event phase] == NSEventPhaseNone) {
GHOST_TInt32 delta;
double deltaF = [event deltaY];