summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorChris Yang <[email protected]>2026-01-26 17:50:51 -0700
committerGitHub <[email protected]>2026-01-26 18:50:51 -0600
commitd9e8b2b65d9fba4b54cb6a7f7d677162335c8e3f (patch)
treeb3a205cddf3ab7b121029f8bd5c62dd7186893b5
parent7655f51e101b318efe0e6a23e05052b344348a90 (diff)
downloadopencode-d9e8b2b65d9fba4b54cb6a7f7d677162335c8e3f.tar.gz
opencode-d9e8b2b65d9fba4b54cb6a7f7d677162335c8e3f.zip
fix(desktop): disable magnification gestures on macOS (#10605)
-rw-r--r--packages/desktop/src-tauri/Cargo.lock2
-rw-r--r--packages/desktop/src-tauri/Cargo.toml4
-rw-r--r--packages/desktop/src-tauri/src/window_customizer.rs12
3 files changed, 18 insertions, 0 deletions
diff --git a/packages/desktop/src-tauri/Cargo.lock b/packages/desktop/src-tauri/Cargo.lock
index a41739a69..294d7ad6c 100644
--- a/packages/desktop/src-tauri/Cargo.lock
+++ b/packages/desktop/src-tauri/Cargo.lock
@@ -3028,6 +3028,8 @@ dependencies = [
"futures",
"gtk",
"listeners",
+ "objc2 0.6.3",
+ "objc2-web-kit",
"reqwest",
"semver",
"serde",
diff --git a/packages/desktop/src-tauri/Cargo.toml b/packages/desktop/src-tauri/Cargo.toml
index 6296b8325..b875f928b 100644
--- a/packages/desktop/src-tauri/Cargo.toml
+++ b/packages/desktop/src-tauri/Cargo.toml
@@ -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",
diff --git a/packages/desktop/src-tauri/src/window_customizer.rs b/packages/desktop/src-tauri/src/window_customizer.rs
index cd42fd029..682f57f24 100644
--- a/packages/desktop/src-tauri/src/window_customizer.rs
+++ b/packages/desktop/src-tauri/src/window_customizer.rs
@@ -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);
+ }
});
}
}