From f99991b23bdf7442011a12dd86e058557d1107d5 Mon Sep 17 00:00:00 2001 From: Stuart Woodbury Date: Fri, 23 Dec 2022 09:52:12 -0500 Subject: [PATCH 1/2] feat(DesktopContext): expose set_inner_size --- packages/desktop/src/desktop_context.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/desktop/src/desktop_context.rs b/packages/desktop/src/desktop_context.rs index 89d0e2fe4..84e321e18 100644 --- a/packages/desktop/src/desktop_context.rs +++ b/packages/desktop/src/desktop_context.rs @@ -1,5 +1,6 @@ use crate::controller::DesktopController; use dioxus_core::ScopeState; +use wry::application::dpi::LogicalSize; use wry::application::event_loop::ControlFlow; use wry::application::event_loop::EventLoopProxy; use wry::application::window::Fullscreen as WryFullscreen; @@ -120,6 +121,11 @@ impl DesktopContext { let _ = self.proxy.send_event(SetZoomLevel(scale_factor)); } + /// modifies the inner size of the window + pub fn set_inner_size(&self, logical_size: LogicalSize) { + let _ = self.proxy.send_event(SetInnerSize(logical_size)); + } + /// launch print modal pub fn print(&self) { let _ = self.proxy.send_event(Print); @@ -159,6 +165,7 @@ pub enum UserWindowEvent { SetDecorations(bool), SetZoomLevel(f64), + SetInnerSize(LogicalSize), Print, DevTool, @@ -205,6 +212,7 @@ pub(super) fn handler( SetDecorations(state) => window.set_decorations(state), SetZoomLevel(scale_factor) => webview.zoom(scale_factor), + SetInnerSize(logical_size) => window.set_inner_size(logical_size), Print => { if let Err(e) = webview.print() { From fe9c482afbdc14298fa81263c6fdfc93c2f6f47f Mon Sep 17 00:00:00 2001 From: Stuart Woodbury Date: Fri, 23 Dec 2022 11:40:51 -0500 Subject: [PATCH 2/2] fix(clippy) --- packages/desktop/src/desktop_context.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/desktop/src/desktop_context.rs b/packages/desktop/src/desktop_context.rs index 321be314c..7b41d33e0 100644 --- a/packages/desktop/src/desktop_context.rs +++ b/packages/desktop/src/desktop_context.rs @@ -2,12 +2,12 @@ use std::rc::Rc; use crate::controller::DesktopController; use dioxus_core::ScopeState; -use wry::application::dpi::LogicalSize; use serde::de::Error; use serde_json::Value; use std::future::Future; use std::future::IntoFuture; use std::pin::Pin; +use wry::application::dpi::LogicalSize; use wry::application::event_loop::ControlFlow; use wry::application::event_loop::EventLoopProxy; #[cfg(target_os = "ios")]