From ac42447459b97a695092cbfcdf28b0591907d496 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nazar=C3=AD=20Gonz=C3=A1lez?= Date: Fri, 17 Jun 2022 00:12:05 +0100 Subject: [PATCH] macOS: disallow_highdpi will set explicity the value to avoid the SO value by default (#2339) Co-authored-by: Mads Marquart --- CHANGELOG.md | 1 + src/platform_impl/macos/window.rs | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fdc63ad1..53725d52 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -60,6 +60,7 @@ And please only add new entries to the top of this list, right below the `# Unre - Implemented `Eq` for `Fullscreen`, `Theme`, and `UserAttentionType`. - **Breaking:** `Window::set_cursor_grab` now accepts `CursorGrabMode` to control grabbing behavior. - On Wayland, add support for `Window::set_cursor_position`. +- Fix on macOS `WindowBuilder::with_disallow_hidpi`, setting true or false by the user no matter the SO default value. # 0.26.1 (2022-01-05) diff --git a/src/platform_impl/macos/window.rs b/src/platform_impl/macos/window.rs index 35c944ce..158feebe 100644 --- a/src/platform_impl/macos/window.rs +++ b/src/platform_impl/macos/window.rs @@ -100,8 +100,13 @@ unsafe fn create_view( ) -> Option<(IdRef, Weak>)> { let (ns_view, cursor_state) = new_view(ns_window); ns_view.non_nil().map(|ns_view| { + // The default value of `setWantsBestResolutionOpenGLSurface:` was `false` until + // macos 10.14 and `true` after 10.15, we should set it to `YES` or `NO` to avoid + // always the default system value in favour of the user's code if !pl_attribs.disallow_hidpi { ns_view.setWantsBestResolutionOpenGLSurface_(YES); + } else { + ns_view.setWantsBestResolutionOpenGLSurface_(NO); } // On Mojave, views automatically become layer-backed shortly after being added to