ui/cocoa: Do not automatically zoom for HiDPI
Cocoa automatically zooms for a HiDPI display like Retina and makes the display blurry. Revert the automatic zooming. Signed-off-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp> Acked-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-ID: <20260304-zoom-v2-1-2eebf2b51106@rsg.ci.i.u-tokyo.ac.jp> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Akihiko Odaki committed
Mar 4, 2026 at 15:39 UTC
a3b23b946c85062ff6fbdcc3d1f10557715516e4
1 file changed
+6
-3
ui/cocoa.m
+6
-3
@@ -627,7 +627,10 @@ static CGEventRef handleTapEvent(CGEventTapProxy proxy, CGEventType type, CGEven
627
[[self window] setContentAspectRatio:NSMakeSize(screen.width, screen.height)];
628
629
if (!([[self window] styleMask] & NSWindowStyleMaskResizable)) {
630
- [[self window] setContentSize:NSMakeSize(screen.width, screen.height)];
630
+ CGFloat width = screen.width / [[self window] backingScaleFactor];
631
+ CGFloat height = screen.height / [[self window] backingScaleFactor];
632
+
633
+ [[self window] setContentSize:NSMakeSize(width, height)];
634
[[self window] center];
635
} else if ([[self window] styleMask] & NSWindowStyleMaskFullScreen) {
636
[[self window] setContentSize:[self fixAspectRatio:[self screenSafeAreaSize]]];
@@ -685,8 +688,8 @@ static CGEventRef handleTapEvent(CGEventTapProxy proxy, CGEventType type, CGEven
688
689
info.xoff = 0;
690
info.yoff = 0;
688
- info.width = frameSize.width;
689
- info.height = frameSize.height;
691
+ info.width = frameSize.width * [[self window] backingScaleFactor];
692
+ info.height = frameSize.height * [[self window] backingScaleFactor];
693
694
dpy_set_ui_info(dcl.con, &info, TRUE);
695
}