@samitouri / QOSamiQemu / commits / a3b23b946c

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 }