[aseprite] 165/250: Impl OSXWindow::setMousePosition on Skia/OSX port
Tobias Hansen
thansen at moszumanska.debian.org
Sun Dec 20 15:27:25 UTC 2015
This is an automated email from the git hooks/post-receive script.
thansen pushed a commit to branch master
in repository aseprite.
commit 66c5e04a58688c3739bf3b8d7f4f803d2e0f30e1
Author: David Capello <davidcapello at gmail.com>
Date: Wed Oct 14 09:29:14 2015 -0300
Impl OSXWindow::setMousePosition on Skia/OSX port
---
src/she/osx/window.h | 2 ++
src/she/osx/window.mm | 19 +++++++++++++++++++
src/she/skia/skia_window_osx.mm | 6 ++++++
3 files changed, 27 insertions(+)
diff --git a/src/she/osx/window.h b/src/she/osx/window.h
index 9eed80c..f76f40d 100644
--- a/src/she/osx/window.h
+++ b/src/she/osx/window.h
@@ -10,6 +10,7 @@
#include <Cocoa/Cocoa.h>
+#include "gfx/point.h"
#include "gfx/rect.h"
#include "gfx/size.h"
#include "she/keys.h"
@@ -41,6 +42,7 @@ public:
- (void)setScale:(int)scale;
- (gfx::Size)clientSize;
- (gfx::Size)restoredSize;
+- (void)setMousePosition:(const gfx::Point&)position;
@end
#endif
diff --git a/src/she/osx/window.mm b/src/she/osx/window.mm
index 3a3f1bb..6d64e76 100644
--- a/src/she/osx/window.mm
+++ b/src/she/osx/window.mm
@@ -74,4 +74,23 @@
return [self clientSize];
}
+- (void)setMousePosition:(const gfx::Point&)position
+{
+ NSView* view = self.contentView;
+ NSPoint pt = NSMakePoint(
+ position.x*m_scale,
+ view.frame.size.height - position.y*m_scale);
+
+ pt = [view convertPoint:pt toView:view];
+ pt = [view convertPoint:pt toView:nil];
+ pt = [self convertBaseToScreen:pt];
+ pt.y = [[self screen] frame].size.height - pt.y;
+
+ CGPoint pos = CGPointMake(pt.x, pt.y);
+ CGEventRef event = CGEventCreateMouseEvent(
+ NULL, kCGEventMouseMoved, pos, kCGMouseButtonLeft);
+ CGEventPost(kCGHIDEventTap, event);
+ CFRelease(event);
+}
+
@end
diff --git a/src/she/skia/skia_window_osx.mm b/src/she/skia/skia_window_osx.mm
index 9e49e1c..7397999 100644
--- a/src/she/skia/skia_window_osx.mm
+++ b/src/she/skia/skia_window_osx.mm
@@ -83,6 +83,10 @@ public:
[m_window setTitle:[NSString stringWithUTF8String:title.c_str()]];
}
+ void setMousePosition(const gfx::Point& position) {
+ [m_window setMousePosition:position];
+ }
+
void updateWindow(const gfx::Rect& bounds) {
[[m_window contentView] setNeedsDisplay:YES];
}
@@ -338,6 +342,8 @@ void SkiaWindow::releaseMouse()
void SkiaWindow::setMousePosition(const gfx::Point& position)
{
+ if (m_impl)
+ m_impl->setMousePosition(position);
}
void SkiaWindow::setNativeMouseCursor(NativeCursor cursor)
--
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