fix: create window correctly

This commit is contained in:
GyDi
2022-10-11 00:57:34 +08:00
parent f2bd6f1fce
commit 41b19f69de
3 changed files with 19 additions and 75 deletions

View File

@@ -19,18 +19,12 @@ use tauri::{
};
fn main() -> std::io::Result<()> {
let mut context = tauri::generate_context!();
{
let verge = Verge::new();
let verge = Verge::new();
if server::check_singleton(verge.app_singleton_port).is_err() {
println!("app exists");
return Ok(());
}
for win in context.config_mut().tauri.windows.iter_mut() {
if verge.enable_silent_start.unwrap_or(false) {
win.visible = false;
if server::check_singleton(verge.app_singleton_port).is_err() {
println!("app exists");
return Ok(());
}
}
@@ -147,7 +141,7 @@ fn main() -> std::io::Result<()> {
#[allow(unused_mut)]
let mut app = builder
.build(context)
.build(tauri::generate_context!())
.expect("error while running tauri application");
#[cfg(target_os = "macos")]

View File

@@ -6,20 +6,24 @@ pub fn resolve_setup(app: &App) {
// init app config
init::init_app(app.package_info());
{
let silent_start = {
let global = Data::global();
let verge = global.verge.lock();
let singleton = verge.app_singleton_port.clone();
// setup a simple http server for singleton
server::embed_server(&app.handle(), singleton);
}
verge.enable_silent_start.clone().unwrap_or(false)
};
// core should be initialized after init_app fix #122
let core = Core::global();
core.init(app.app_handle());
resolve_window(app);
if !silent_start || cfg!(target_os = "macos") {
create_window(&app.app_handle());
}
}
/// reset system proxy
@@ -33,39 +37,6 @@ pub fn resolve_reset() {
crate::log_if_err!(service.stop());
}
/// customize the window theme
fn resolve_window(app: &App) {
let window = app.get_window("main").unwrap();
#[cfg(target_os = "windows")]
{
use crate::utils::winhelp;
use window_shadows::set_shadow;
use window_vibrancy::apply_blur;
let _ = window.set_decorations(false);
let _ = set_shadow(&window, true);
// todo
// win11 disable this feature temporarily due to lag
if !winhelp::is_win11() {
let _ = apply_blur(&window, None);
}
}
#[cfg(target_os = "macos")]
{
use tauri::LogicalSize;
use tauri::Size::Logical;
let _ = window.set_decorations(true);
let _ = window.set_size(Logical(LogicalSize {
width: 800.0,
height: 620.0,
}));
}
}
/// create main window
pub fn create_window(app_handle: &AppHandle) {
if let Some(window) = app_handle.get_window("main") {
@@ -120,7 +91,7 @@ pub fn create_window(app_handle: &AppHandle) {
}
#[cfg(target_os = "macos")]
crate::log_if_err!(builder.decorations(true).inner_size(800.0, 620.0).build());
crate::log_if_err!(builder.decorations(true).inner_size(800.0, 642.0).build());
#[cfg(target_os = "linux")]
crate::log_if_err!(builder