Commit: 8793d7cdd8439b5a000d7e9a87b483af3c1aadff
Author: Dalai Felinto
Date:   Fri Oct 31 00:15:37 2014 -0200
Branches: epic-navigation
https://developer.blender.org/rB8793d7cdd8439b5a000d7e9a87b483af3c1aadff

New "Mouse/Trackpad" Untouch event for trackpads (OSX only for now)

===================================================================

M       intern/ghost/GHOST_Types.h
M       intern/ghost/intern/GHOST_SystemCocoa.mm
M       source/blender/makesrna/intern/rna_wm.c
M       source/blender/windowmanager/intern/wm_event_system.c
M       source/blender/windowmanager/wm_event_types.h

===================================================================

diff --git a/intern/ghost/GHOST_Types.h b/intern/ghost/GHOST_Types.h
index 7333ba0..7f03abb 100644
--- a/intern/ghost/GHOST_Types.h
+++ b/intern/ghost/GHOST_Types.h
@@ -400,7 +400,8 @@ typedef enum {
        GHOST_kTrackpadEventScroll,
        GHOST_kTrackpadEventRotate,
        GHOST_kTrackpadEventSwipe, /* Reserved, not used for now */
-       GHOST_kTrackpadEventMagnify
+       GHOST_kTrackpadEventMagnify,
+       GHOST_kTrackpadEventUntouch,
 } GHOST_TTrackpadEventSubTypes;
        
 
diff --git a/intern/ghost/intern/GHOST_SystemCocoa.mm 
b/intern/ghost/intern/GHOST_SystemCocoa.mm
index cfa1e8b..5dcad1d 100644
--- a/intern/ghost/intern/GHOST_SystemCocoa.mm
+++ b/intern/ghost/intern/GHOST_SystemCocoa.mm
@@ -1372,6 +1372,8 @@ GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void 
*eventPtr)
                        break;
                case NSEventTypeEndGesture:
                        m_hasMultiTouchTrackpad = 0;
+                       pushEvent(new GHOST_EventTrackpad([event timestamp] * 
1000, window, GHOST_kTrackpadEventUntouch, 0, 0,
+                                                         0, 0));
                        break;
                        
                case NSScrollWheel:
diff --git a/source/blender/makesrna/intern/rna_wm.c 
b/source/blender/makesrna/intern/rna_wm.c
index 3c39308..8ca97be 100644
--- a/source/blender/makesrna/intern/rna_wm.c
+++ b/source/blender/makesrna/intern/rna_wm.c
@@ -90,6 +90,7 @@ static EnumPropertyItem event_mouse_type_items[] = {
        {MOUSEPAN, "TRACKPADPAN", 0, "Mouse/Trackpad Pan", ""},
        {MOUSEZOOM, "TRACKPADZOOM", 0, "Mouse/Trackpad Zoom", ""},
        {MOUSEROTATE, "MOUSEROTATE", 0, "Mouse/Trackpad Rotate", ""},
+       {MOUSEUNTOUCH, "TRACKPADUNTOUCH", 0, "Mouse/Trackpad Untouch", ""},
        {0, "", 0, NULL, NULL},
        {WHEELUPMOUSE, "WHEELUPMOUSE", 0, "Wheel Up", ""},
        {WHEELDOWNMOUSE, "WHEELDOWNMOUSE", 0, "Wheel Down", ""},
@@ -185,6 +186,7 @@ EnumPropertyItem event_type_items[] = {
        {MOUSEPAN, "TRACKPADPAN", 0, "Mouse/Trackpad Pan", ""},
        {MOUSEZOOM, "TRACKPADZOOM", 0, "Mouse/Trackpad Zoom", ""},
        {MOUSEROTATE, "MOUSEROTATE", 0, "Mouse/Trackpad Rotate", ""},
+       {MOUSEUNTOUCH, "TRACKPADUNTOUCH", 0, "Mouse/Trackpad Untouch", ""},
        {0, "", 0, NULL, NULL},
        {WHEELUPMOUSE, "WHEELUPMOUSE", 0, "Wheel Up", ""},
        {WHEELDOWNMOUSE, "WHEELDOWNMOUSE", 0, "Wheel Down", ""},
diff --git a/source/blender/windowmanager/intern/wm_event_system.c 
b/source/blender/windowmanager/intern/wm_event_system.c
index 793908e..7e29ad9 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -3094,6 +3094,9 @@ void wm_event_add_ghostevent(wmWindowManager *wm, 
wmWindow *win, int type, int U
                                case GHOST_kTrackpadEventRotate:
                                        event.type = MOUSEROTATE;
                                        break;
+                               case GHOST_kTrackpadEventUntouch:
+                                       event.type = MOUSEUNTOUCH;
+                                       break;
                                case GHOST_kTrackpadEventScroll:
                                default:
                                        event.type = MOUSEPAN;
diff --git a/source/blender/windowmanager/wm_event_types.h 
b/source/blender/windowmanager/wm_event_types.h
index fe6d343..dbfd109 100644
--- a/source/blender/windowmanager/wm_event_types.h
+++ b/source/blender/windowmanager/wm_event_types.h
@@ -75,6 +75,7 @@ enum {
        MOUSEPAN            = 0x000e,
        MOUSEZOOM           = 0x000f,
        MOUSEROTATE         = 0x0010,
+       MOUSEUNTOUCH        = 0x0014,
        /* defaults from ghost */
        WHEELUPMOUSE        = 0x000a,
        WHEELDOWNMOUSE      = 0x000b,
@@ -347,7 +348,7 @@ enum {
 #define ISKEYMODIFIER(event_type)  ((event_type >= LEFTCTRLKEY && event_type 
<= LEFTSHIFTKEY) || event_type == OSKEY)
 
 /* test whether the event is a mouse button */
-#define ISMOUSE(event_type)  (event_type >= LEFTMOUSE && event_type <= 
BUTTON7MOUSE)
+#define ISMOUSE(event_type)  (event_type >= LEFTMOUSE && event_type <= 
MOUSEUNTOUCH)
 
 /* test whether the event is tweak event */
 #define ISTWEAK(event_type)  (event_type >= EVT_TWEAK_L && event_type <= 
EVT_GESTURE)

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to