Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ed0b223

Browse files
fix: disable WebView2 mini menu ("OOUI"), closes #535 (#559)
* Disable WebView2 mini menu ("OOUI") * Apply suggestions from code review Co-authored-by: Amr Bashir <[email protected]> * fmt and changelog Co-authored-by: Amr Bashir <[email protected]>
1 parent b89398a commit ed0b223

2 files changed

Lines changed: 27 additions & 20 deletions

File tree

.changes/webview2-mini-menu.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"wry": patch
3+
---
4+
5+
Disable webview2 mini menu

src/webview/webview2/mod.rs

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -94,26 +94,28 @@ impl InnerWebView {
9494

9595
CreateCoreWebView2EnvironmentCompletedHandler::wait_for_async_operation(
9696
Box::new(move |environmentcreatedhandler| unsafe {
97-
if let Some(data_directory) = data_directory {
98-
// If we have a custom data_directory, we need to use a call to `CreateCoreWebView2EnvironmentWithOptions`
99-
// instead of the much simpler `CreateCoreWebView2Environment`.
100-
let options: ICoreWebView2EnvironmentOptions =
101-
CoreWebView2EnvironmentOptions::default().into();
102-
let data_directory = pwstr_from_str(&data_directory);
103-
let result = CreateCoreWebView2EnvironmentWithOptions(
104-
PWSTR::default(),
105-
data_directory,
106-
options,
107-
environmentcreatedhandler,
108-
)
109-
.map_err(webview2_com::Error::WindowsError);
110-
let _ = take_pwstr(data_directory);
111-
112-
return result;
113-
}
114-
115-
CreateCoreWebView2Environment(environmentcreatedhandler)
116-
.map_err(webview2_com::Error::WindowsError)
97+
let options: ICoreWebView2EnvironmentOptions =
98+
CoreWebView2EnvironmentOptions::default().into();
99+
100+
// remove "mini menu" - See https://github.com/tauri-apps/wry/issues/535
101+
let additional_arguments = pwstr_from_str("--disable-features=msWebOOUI,msPdfOOUI");
102+
let _ = options.SetAdditionalBrowserArguments(additional_arguments);
103+
104+
// if data_directory is None, we set it to a null PWSTR
105+
let data_directory: PWSTR = data_directory
106+
.map(|s| pwstr_from_str(&s))
107+
.unwrap_or_default();
108+
109+
let result = CreateCoreWebView2EnvironmentWithOptions(
110+
PWSTR::default(),
111+
data_directory,
112+
options,
113+
environmentcreatedhandler,
114+
)
115+
.map_err(webview2_com::Error::WindowsError);
116+
let _ = take_pwstr(data_directory);
117+
118+
return result;
117119
}),
118120
Box::new(move |error_code, environment| {
119121
error_code?;

0 commit comments

Comments
 (0)