[aseprite] 44/128: Add Wacom eraser support on OS X

Tobias Hansen thansen at moszumanska.debian.org
Mon May 9 21:24:21 UTC 2016


This is an automated email from the git hooks/post-receive script.

thansen pushed a commit to branch master
in repository aseprite.

commit 9b05d2e8ef791a309fe5ae9a1eafbf290bff46ac
Author: David Capello <davidcapello at gmail.com>
Date:   Thu Apr 21 13:13:15 2016 -0300

    Add Wacom eraser support on OS X
---
 src/she/osx/view.h  |  5 ++++-
 src/she/osx/view.mm | 34 +++++++++++++++++++++++++++++++++-
 2 files changed, 37 insertions(+), 2 deletions(-)

diff --git a/src/she/osx/view.h b/src/she/osx/view.h
index c76d0c7..0a3e8c6 100644
--- a/src/she/osx/view.h
+++ b/src/she/osx/view.h
@@ -1,5 +1,5 @@
 // SHE library
-// Copyright (C) 2015  David Capello
+// Copyright (C) 2015-2016  David Capello
 //
 // This file is released under the terms of the MIT license.
 // Read LICENSE.txt for more information.
@@ -8,6 +8,8 @@
 #define SHE_OSX_VIEW_H_INCLUDED
 #pragma once
 
+#include "she/pointer_type.h"
+
 #include <Cocoa/Cocoa.h>
 
 @interface OSXView : NSView {
@@ -15,6 +17,7 @@
   NSTrackingArea* m_trackingArea;
   NSCursor* m_nsCursor;
   bool m_visibleMouse;
+  she::PointerType m_pointerType;
 }
 - (id)initWithFrame:(NSRect)frameRect;
 - (BOOL)acceptsFirstResponder;
diff --git a/src/she/osx/view.mm b/src/she/osx/view.mm
index 52bfc6b..e51ac91 100644
--- a/src/she/osx/view.mm
+++ b/src/she/osx/view.mm
@@ -92,6 +92,7 @@ bool is_key_pressed(KeyScancode scancode)
 {
   m_nsCursor = [NSCursor arrowCursor];
   m_visibleMouse = true;
+  m_pointerType = she::PointerType::Unknown;
 
   self = [super initWithFrame:frameRect];
   if (self != nil) {
@@ -307,6 +308,10 @@ bool is_key_pressed(KeyScancode scancode)
   ev.setPosition(get_local_mouse_pos(self, event));
   ev.setButton(get_mouse_buttons(event));
   ev.setModifiers(get_modifiers_from_nsevent(event));
+
+  if (m_pointerType != she::PointerType::Unknown)
+    ev.setPointerType(m_pointerType);
+
   queue_event(ev);
 }
 
@@ -317,6 +322,10 @@ bool is_key_pressed(KeyScancode scancode)
   ev.setPosition(get_local_mouse_pos(self, event));
   ev.setButton(get_mouse_buttons(event));
   ev.setModifiers(get_modifiers_from_nsevent(event));
+
+  if (m_pointerType != she::PointerType::Unknown)
+    ev.setPointerType(m_pointerType);
+
   queue_event(ev);
 }
 
@@ -327,6 +336,10 @@ bool is_key_pressed(KeyScancode scancode)
   ev.setPosition(get_local_mouse_pos(self, event));
   ev.setButton(get_mouse_buttons(event));
   ev.setModifiers(get_modifiers_from_nsevent(event));
+
+  if (m_pointerType != she::PointerType::Unknown)
+    ev.setPointerType(m_pointerType);
+
   queue_event(ev);
 }
 
@@ -360,11 +373,13 @@ bool is_key_pressed(KeyScancode scancode)
     scale = [(OSXWindow*)self.window scale];
 
   if (event.hasPreciseScrollingDeltas) {
+    ev.setPointerType(she::PointerType::Multitouch);
     ev.setWheelDelta(gfx::Point(-event.scrollingDeltaX / scale,
                                 -event.scrollingDeltaY / scale));
     ev.setPreciseWheel(true);
   }
   else {
+    ev.setPointerType(she::PointerType::Mouse);
     ev.setWheelDelta(gfx::Point(-event.scrollingDeltaX,
                                 -event.scrollingDeltaY));
   }
@@ -379,10 +394,27 @@ bool is_key_pressed(KeyScancode scancode)
   ev.setMagnification(event.magnification);
   ev.setPosition(get_local_mouse_pos(self, event));
   ev.setModifiers(get_modifiers_from_nsevent(event));
-
+  ev.setPointerType(she::PointerType::Multitouch);
   queue_event(ev);
 }
 
+- (void)tabletProximity:(NSEvent*)event
+{
+  if (event.isEnteringProximity == YES) {
+    switch (event.pointingDeviceType) {
+      case NSPenPointingDevice: m_pointerType = she::PointerType::Pen; break;
+      case NSCursorPointingDevice: m_pointerType = she::PointerType::Cursor; break;
+      case NSEraserPointingDevice: m_pointerType = she::PointerType::Eraser; break;
+      default:
+        m_pointerType = she::PointerType::Unknown;
+        break;
+    }
+  }
+  else {
+    m_pointerType = she::PointerType::Unknown;
+  }
+}
+
 - (void)cursorUpdate:(NSEvent*)event
 {
   [self updateCurrentCursor];

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/aseprite.git



More information about the Pkg-games-commits mailing list