diff options
author | David Robillard <d@drobilla.net> | 2020-06-06 19:32:03 +0200 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2020-06-13 17:18:25 +0200 |
commit | 81f9debf519c4b54e713a7a36a4ac474340d18fb (patch) | |
tree | ebf4bf96176cfbe9f4baca62be7021487c627cf0 | |
parent | eebb62db425333c3a934d9f17fba87a5cee57460 (diff) | |
download | pugl-81f9debf519c4b54e713a7a36a4ac474340d18fb.tar.gz pugl-81f9debf519c4b54e713a7a36a4ac474340d18fb.tar.bz2 pugl-81f9debf519c4b54e713a7a36a4ac474340d18fb.zip |
Fix mouse position of events on high resolution MacOS
-rw-r--r-- | pugl/detail/mac.m | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/pugl/detail/mac.m b/pugl/detail/mac.m index 501f5d9..da9de20 100644 --- a/pugl/detail/mac.m +++ b/pugl/detail/mac.m @@ -77,6 +77,14 @@ nsRectFromPoints(PuglView* view, const NSRect rect) rect.size.height * scaleFactor); } +static NSPoint +nsPointFromPoints(PuglView* view, const NSPoint point) +{ + const double scaleFactor = [viewScreen(view) backingScaleFactor]; + + return NSMakePoint(point.x * scaleFactor, point.y * scaleFactor); +} + static NSRect rectToNsRect(const PuglRect rect) { @@ -307,7 +315,9 @@ keySymToSpecial(const NSEvent* const ev) - (NSPoint) eventLocation:(NSEvent*)event { - return [self convertPoint:[event locationInWindow] fromView:nil]; + return nsPointFromPoints(puglview, + [self convertPoint:[event locationInWindow] + fromView:nil]); } static void |