fix(desktop): disable magnification gestures on macOS (#10605)

This commit is contained in:
Chris Yang
2026-01-26 17:50:51 -07:00
committed by GitHub
parent 7655f51e10
commit d9e8b2b65d
3 changed files with 18 additions and 0 deletions

View File

@@ -3028,6 +3028,8 @@ dependencies = [
"futures",
"gtk",
"listeners",
"objc2 0.6.3",
"objc2-web-kit",
"reqwest",
"semver",
"serde",

View File

@@ -47,6 +47,10 @@ comrak = { version = "0.50", default-features = false }
gtk = "0.18.2"
webkit2gtk = "=2.0.1"
[target.'cfg(target_os = "macos")'.dependencies]
objc2 = "0.6"
objc2-web-kit = "0.3"
[target.'cfg(windows)'.dependencies]
windows = { version = "0.61", features = [
"Win32_Foundation",

View File

@@ -29,6 +29,18 @@ impl<R: Runtime> Plugin<R> for PinchZoomDisablePlugin {
gobject_ffi::g_signal_handlers_destroy(data.as_ptr().cast());
}
}
#[cfg(target_os = "macos")]
unsafe {
use objc2::rc::Retained;
use objc2_web_kit::WKWebView;
// Get the WKWebView pointer and disable magnification gestures
// This prevents Cmd+Ctrl+scroll and pinch-to-zoom from changing the zoom level
let wk_webview: Retained<WKWebView> =
Retained::retain(_webview.inner().cast()).unwrap();
wk_webview.setAllowsMagnification(false);
}
});
}
}