From: Marc-Aurel Zent mzent@codeweavers.com
--- dlls/winemac.drv/cocoa_app.m | 2 +- dlls/winemac.drv/cocoa_window.m | 16 ++++++++-------- dlls/winemac.drv/macdrv_cocoa.h | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/dlls/winemac.drv/cocoa_app.m b/dlls/winemac.drv/cocoa_app.m index de3a23a5d2d..c20f897d1b6 100644 --- a/dlls/winemac.drv/cocoa_app.m +++ b/dlls/winemac.drv/cocoa_app.m @@ -2573,7 +2573,7 @@ int macdrv_clip_cursor(CGRect r) CGRect rect = r;
if (!CGRectIsInfinite(rect)) - rect = cgrect_mac_from_win(rect); + rect = cgrect_mac_from_win(rect, retina_on);
if (!CGRectIsInfinite(rect)) { diff --git a/dlls/winemac.drv/cocoa_window.m b/dlls/winemac.drv/cocoa_window.m index 1655ea98ef7..b286a8e0091 100644 --- a/dlls/winemac.drv/cocoa_window.m +++ b/dlls/winemac.drv/cocoa_window.m @@ -926,7 +926,7 @@ - (NSRect) firstRectForCharacterRange:(NSRange)aRange actualRange:(NSRangePointe if ([window.queue query:query timeout:0.3 flags:WineQueryNoPreemptWait]) { aRange = NSMakeRange(query->ime_char_rect.range.location, query->ime_char_rect.range.length); - ret = NSRectFromCGRect(cgrect_mac_from_win(query->ime_char_rect.rect)); + ret = NSRectFromCGRect(cgrect_mac_from_win(query->ime_char_rect.rect, retina_on)); [[WineApplicationController sharedController] flipRect:&ret]; } else @@ -3114,7 +3114,7 @@ - (NSSize) windowWillResize:(NSWindow*)sender toSize:(NSSize)frameSize
if ([self.queue query:query timeout:0.1]) { - rect = NSRectFromCGRect(cgrect_mac_from_win(query->resize_size.rect)); + rect = NSRectFromCGRect(cgrect_mac_from_win(query->resize_size.rect, retina_on)); rect = [self frameRectForContentRect:rect]; frameSize = rect.size; } @@ -3300,7 +3300,7 @@ macdrv_window macdrv_create_cocoa_window(const struct macdrv_window_features* wf
OnMainThread(^{ window = [[WineWindow createWindowWithFeatures:wf - windowFrame:NSRectFromCGRect(cgrect_mac_from_win(frame)) + windowFrame:NSRectFromCGRect(cgrect_mac_from_win(frame, retina_on)) hwnd:hwnd queue:(WineEventQueue*)queue] retain]; }); @@ -3445,7 +3445,7 @@ void macdrv_set_cocoa_window_frame(macdrv_window w, const CGRect* new_frame) WineWindow* window = (WineWindow*)w;
OnMainThread(^{ - [window setFrameFromWine:NSRectFromCGRect(cgrect_mac_from_win(*new_frame))]; + [window setFrameFromWine:NSRectFromCGRect(cgrect_mac_from_win(*new_frame, retina_on))]; }); }
@@ -3511,7 +3511,7 @@ void macdrv_window_needs_display(macdrv_window w, CGRect rect) WineWindow* window = (WineWindow*)w;
OnMainThreadAsync(^{ - [[window contentView] setNeedsDisplayInRect:NSRectFromCGRect(cgrect_mac_from_win(rect))]; + [[window contentView] setNeedsDisplayInRect:NSRectFromCGRect(cgrect_mac_from_win(rect, retina_on))]; }); } } @@ -3541,7 +3541,7 @@ void macdrv_set_window_shape(macdrv_window w, const CGRect *rects, int count)
path = CGPathCreateMutable(); for (i = 0; i < count; i++) - CGPathAddRect(path, NULL, cgrect_mac_from_win(rects[i])); + CGPathAddRect(path, NULL, cgrect_mac_from_win(rects[i], retina_on)); [window setShape:path]; CGPathRelease(path); } @@ -3662,7 +3662,7 @@ macdrv_view macdrv_create_view(CGRect rect) OnMainThread(^{ NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];
- view = [[WineContentView alloc] initWithFrame:NSRectFromCGRect(cgrect_mac_from_win(rect))]; + view = [[WineContentView alloc] initWithFrame:NSRectFromCGRect(cgrect_mac_from_win(rect, retina_on))]; [view setAutoresizingMask:NSViewNotSizable]; [view setHidden:YES]; [view setWantsBestResolutionOpenGLSurface:retina_on]; @@ -3720,7 +3720,7 @@ void macdrv_set_view_frame(macdrv_view v, CGRect rect) if (CGRectIsNull(rect)) rect = CGRectZero;
OnMainThreadAsync(^{ - NSRect newFrame = NSRectFromCGRect(cgrect_mac_from_win(rect)); + NSRect newFrame = NSRectFromCGRect(cgrect_mac_from_win(rect, retina_on)); NSRect oldFrame = [view frame];
if (!NSEqualRects(oldFrame, newFrame)) diff --git a/dlls/winemac.drv/macdrv_cocoa.h b/dlls/winemac.drv/macdrv_cocoa.h index 3a977f68955..39cf6128bad 100644 --- a/dlls/winemac.drv/macdrv_cocoa.h +++ b/dlls/winemac.drv/macdrv_cocoa.h @@ -159,9 +159,9 @@ extern int retina_on; /* Whether Retina mode is currently active (enabled and display is in default mode). */ extern int enable_app_nap;
-static inline CGRect cgrect_mac_from_win(CGRect rect) +static inline CGRect cgrect_mac_from_win(CGRect rect, int retina_scale) { - if (retina_on) + if (retina_scale) { rect.origin.x /= 2; rect.origin.y /= 2;