diff --git a/viewport/src/editor.rs b/viewport/src/editor.rs index bda2e96..c178ac2 100644 --- a/viewport/src/editor.rs +++ b/viewport/src/editor.rs @@ -646,7 +646,7 @@ impl EditorState { self.computed_images.retain(|img| !block_ids.contains(&img.anchor.block_id)); let mut new_srcs: Vec<(Anchor, String, String)> = Vec::new(); - for &(start, block_id) in boundaries { + for &(_start, block_id) in boundaries { let block = match self.registry.get(&block_id) { Some(b) => b, None => continue, diff --git a/windows/build.rs b/windows/build.rs index 0bcf657..3a169c4 100644 --- a/windows/build.rs +++ b/windows/build.rs @@ -1,13 +1,12 @@ -use std::process::Command; - fn main() { #[cfg(target_os = "windows")] { + use std::process::Command; + let svg = "../assets/Acord.svg"; let ico = "icon.ico"; let tmp = "icon_tmp"; - // Only regenerate on release builds or when the SVG changes. println!("cargo:rerun-if-changed={svg}"); let _ = std::fs::create_dir_all(tmp); @@ -23,7 +22,7 @@ fn main() { .map(|s| s.success()) .unwrap_or(false); if !ok { - eprintln!("cargo:warning=rsvg-convert failed for {size}px — skipping icon embed"); + eprintln!("cargo:warning=rsvg-convert not found or failed — building without icon"); let _ = std::fs::remove_dir_all(tmp); return; } @@ -40,12 +39,14 @@ fn main() { let _ = std::fs::remove_dir_all(tmp); if !ok { - eprintln!("cargo:warning=magick ico conversion failed — skipping icon embed"); + eprintln!("cargo:warning=magick (ImageMagick) not found — building without icon"); return; } let mut res = winres::WindowsResource::new(); res.set_icon(ico); - res.compile().expect("winres icon embed"); + if let Err(e) = res.compile() { + eprintln!("cargo:warning=winres failed: {e} — building without icon"); + } } } diff --git a/windows/src/app.rs b/windows/src/app.rs index ef310d9..1e26eb9 100644 --- a/windows/src/app.rs +++ b/windows/src/app.rs @@ -1,4 +1,4 @@ -use std::ffi::{c_void, CString}; +use std::ffi::CString; use winit::application::ApplicationHandler; use winit::dpi::{LogicalSize, PhysicalPosition}; @@ -22,9 +22,10 @@ pub struct App { window: Option, handle: *mut ViewportHandle, config: Config, - menu: Option, + _menu: Option, cursor_pos: PhysicalPosition, scale: f32, + modifiers: ModifiersState, } impl App { @@ -33,9 +34,10 @@ impl App { window: None, handle: std::ptr::null_mut(), config: Config::load(), - menu: None, + _menu: None, cursor_pos: PhysicalPosition::new(0.0, 0.0), scale: 1.0, + modifiers: ModifiersState::empty(), } } @@ -178,7 +180,7 @@ impl ApplicationHandler for App { unsafe { app_menu.menu.init_for_hwnd(h.hwnd.get()).ok(); } } } - self.menu = Some(app_menu); + self._menu = Some(app_menu); self.window = Some(window); } @@ -252,20 +254,15 @@ impl ApplicationHandler for App { .unwrap_or(std::ptr::null()); let keycode = winit_key_to_code(&event.logical_key); - let modifiers = if let Some(w) = &self.window { - // No direct modifier query on winit 0.30 Window. - // Modifiers come via ModifiersChanged. We track them. - 0u32 - } else { - 0u32 - }; + let mod_flags = encode_modifiers(self.modifiers); acord_viewport::viewport_key_event( - self.handle, keycode, modifiers, pressed, text_ptr, + self.handle, keycode, mod_flags, pressed, text_ptr, ); } WindowEvent::ModifiersChanged(mods) => { + self.modifiers = mods.state(); if !self.handle.is_null() { let state = mods.state(); let h = unsafe { &mut *self.handle }; diff --git a/windows/src/config.rs b/windows/src/config.rs index a387da2..bcde3e2 100644 --- a/windows/src/config.rs +++ b/windows/src/config.rs @@ -1,11 +1,14 @@ use std::collections::HashMap; use std::path::PathBuf; +#[allow(dead_code)] pub struct Config { path: PathBuf, data: HashMap, } +#[allow(dead_code)] + impl Config { pub fn load() -> Self { let dir = config_dir(); diff --git a/windows/src/main.rs b/windows/src/main.rs index ae7fe82..04a1859 100644 --- a/windows/src/main.rs +++ b/windows/src/main.rs @@ -1,3 +1,6 @@ +// Hide the console window on release builds. +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + mod app; mod config; mod menu; diff --git a/windows/src/menu.rs b/windows/src/menu.rs index 12d2808..b4acc8d 100644 --- a/windows/src/menu.rs +++ b/windows/src/menu.rs @@ -2,6 +2,7 @@ use muda::{Menu, MenuEvent, MenuItem, PredefinedMenuItem, Submenu, accelerator:: use muda::accelerator::{Code, Modifiers}; pub struct AppMenu { + #[allow(dead_code)] pub menu: Menu, }