Make window invisible until the first render (#1588)
This commit is contained in:
1 parent
d4e6876ff6
commit
720bfdf231
2 files changed
+8
-1
No files matched your search
@@ -161,6 +161,7 @@ pub fn launch_with_props<P: 'static>(root: Component<P>, props: P, cfg: Config)
|
|||||||
// iOS panics if we create a window before the event loop is started
|
// iOS panics if we create a window before the event loop is started
|
||||||
let props = Rc::new(Cell::new(Some(props)));
|
let props = Rc::new(Cell::new(Some(props)));
|
||||||
let cfg = Rc::new(Cell::new(Some(cfg)));
|
let cfg = Rc::new(Cell::new(Some(cfg)));
|
||||||
|
let mut is_visible_before_start = true;
|
||||||
|
|
||||||
event_loop.run(move |window_event, event_loop, control_flow| {
|
event_loop.run(move |window_event, event_loop, control_flow| {
|
||||||
*control_flow = ControlFlow::Wait;
|
*control_flow = ControlFlow::Wait;
|
||||||
@@ -210,6 +211,8 @@ pub fn launch_with_props<P: 'static>(root: Component<P>, props: P, cfg: Config)
|
|||||||
// Create a dom
|
// Create a dom
|
||||||
let dom = VirtualDom::new_with_props(root, props);
|
let dom = VirtualDom::new_with_props(root, props);
|
||||||
|
|
||||||
|
is_visible_before_start = cfg.window.window.visible;
|
||||||
|
|
||||||
let handler = create_new_window(
|
let handler = create_new_window(
|
||||||
cfg,
|
cfg,
|
||||||
event_loop,
|
event_loop,
|
||||||
@@ -323,6 +326,10 @@ pub fn launch_with_props<P: 'static>(root: Component<P>, props: P, cfg: Config)
|
|||||||
EventData::Ipc(msg) if msg.method() == "initialize" => {
|
EventData::Ipc(msg) if msg.method() == "initialize" => {
|
||||||
let view = webviews.get_mut(&event.1).unwrap();
|
let view = webviews.get_mut(&event.1).unwrap();
|
||||||
send_edits(view.dom.rebuild(), &view.desktop_context.webview);
|
send_edits(view.dom.rebuild(), &view.desktop_context.webview);
|
||||||
|
view.desktop_context
|
||||||
|
.webview
|
||||||
|
.window()
|
||||||
|
.set_visible(is_visible_before_start);
|
||||||
}
|
}
|
||||||
|
|
||||||
EventData::Ipc(msg) if msg.method() == "browser_open" => {
|
EventData::Ipc(msg) if msg.method() == "browser_open" => {
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ pub fn build(
|
|||||||
proxy: EventLoopProxy<UserWindowEvent>,
|
proxy: EventLoopProxy<UserWindowEvent>,
|
||||||
) -> (WebView, WebContext) {
|
) -> (WebView, WebContext) {
|
||||||
let builder = cfg.window.clone();
|
let builder = cfg.window.clone();
|
||||||
let window = builder.build(event_loop).unwrap();
|
let window = builder.with_visible(false).build(event_loop).unwrap();
|
||||||
let file_handler = cfg.file_drop_handler.take();
|
let file_handler = cfg.file_drop_handler.take();
|
||||||
let custom_head = cfg.custom_head.clone();
|
let custom_head = cfg.custom_head.clone();
|
||||||
let index_file = cfg.custom_index.clone();
|
let index_file = cfg.custom_index.clone();
|
||||||
|
|||||||
Reference in new issue
Block a user