diff --git a/.nix/pkgs/graphite-cef.nix b/.nix/pkgs/graphite-cef.nix index c318ac98f8..732ffd0943 100644 --- a/.nix/pkgs/graphite-cef.nix +++ b/.nix/pkgs/graphite-cef.nix @@ -1,10 +1,10 @@ { pkgs, ... }: let - version = "147.0.14+g76d2442+chromium-147.0.7727.138"; + version = "149.0.5+g6770623+chromium-149.0.7827.197"; hashes = { - aarch64-linux = "sha256-Gy2Xs1NHwmIr+buzoqDso1QJVkKlA/UMXytHjNGqpNk="; - x86_64-linux = "sha256-os7wAFJ+mVK65HCikvEjhMeQUj2ty7y+6Ad0OlOcbeA="; + aarch64-linux = "sha256-cBAvcvs1rAg5EKJkCt81RZYupCWpUNIC/nLt3PJow7Q="; + x86_64-linux = "sha256-OPGMBJmvvLiLdBDniBQwx7LmTGGI59AcesJdILSeqcs="; }; selectSystem = diff --git a/Cargo.lock b/Cargo.lock index 5aae8b9592..e4cb73a2e7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -594,8 +594,8 @@ dependencies = [ [[package]] name = "cef" -version = "148.1.0+147.0.14" -source = "git+https://github.com/timon-schelling/cef-rs.git?branch=graphite#b36fbe355fdb0cb101295da4554dbb285f2d91f2" +version = "149.2.0+149.0.5" +source = "git+https://github.com/timon-schelling/cef-rs.git?branch=graphite-149#877c9cd8f7776e6c52e365d501ad44c73e17117a" dependencies = [ "anyhow", "ash", @@ -615,14 +615,14 @@ dependencies = [ "thiserror 2.0.18", "tracing", "wgpu", - "windows 0.62.2", + "windows", "windows-sys 0.61.2", ] [[package]] name = "cef-dll-sys" -version = "148.1.0+147.0.14" -source = "git+https://github.com/timon-schelling/cef-rs.git?branch=graphite#b36fbe355fdb0cb101295da4554dbb285f2d91f2" +version = "149.2.0+149.0.5" +source = "git+https://github.com/timon-schelling/cef-rs.git?branch=graphite-149#877c9cd8f7776e6c52e365d501ad44c73e17117a" dependencies = [ "anyhow", "cmake", @@ -1223,7 +1223,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -1318,7 +1318,7 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "download-cef" version = "2.3.2" -source = "git+https://github.com/timon-schelling/cef-rs.git?branch=graphite#b36fbe355fdb0cb101295da4554dbb285f2d91f2" +source = "git+https://github.com/timon-schelling/cef-rs.git?branch=graphite-149#877c9cd8f7776e6c52e365d501ad44c73e17117a" dependencies = [ "bzip2", "clap", @@ -1474,7 +1474,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] @@ -1931,7 +1931,7 @@ dependencies = [ "log", "presser", "thiserror 2.0.18", - "windows 0.62.2", + "windows", ] [[package]] @@ -2211,7 +2211,7 @@ dependencies = [ "vello", "wgpu", "window_clipboard", - "windows 0.58.0", + "windows", "winit", ] @@ -3947,7 +3947,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.45.0", ] [[package]] @@ -4507,7 +4507,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] @@ -4983,7 +4983,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] @@ -5051,7 +5051,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -5784,7 +5784,7 @@ dependencies = [ "getrandom 0.3.3", "once_cell", "rustix", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -6999,7 +6999,7 @@ dependencies = [ "web-sys", "wgpu-naga-bridge", "wgpu-types", - "windows 0.62.2", + "windows", "windows-core 0.62.2", "windows-result 0.4.1", ] @@ -7056,7 +7056,7 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] @@ -7079,16 +7079,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "windows" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" -dependencies = [ - "windows-core 0.58.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows" version = "0.62.2" @@ -7110,27 +7100,14 @@ dependencies = [ "windows-core 0.62.2", ] -[[package]] -name = "windows-core" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" -dependencies = [ - "windows-implement 0.58.0", - "windows-interface 0.58.0", - "windows-result 0.2.0", - "windows-strings 0.1.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows-core" version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ - "windows-implement 0.60.2", - "windows-interface 0.59.3", + "windows-implement", + "windows-interface", "windows-link 0.1.3", "windows-result 0.3.4", "windows-strings 0.4.2", @@ -7142,8 +7119,8 @@ version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ - "windows-implement 0.60.2", - "windows-interface 0.59.3", + "windows-implement", + "windows-interface", "windows-link 0.2.1", "windows-result 0.4.1", "windows-strings 0.5.1", @@ -7160,17 +7137,6 @@ dependencies = [ "windows-threading", ] -[[package]] -name = "windows-implement" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - [[package]] name = "windows-implement" version = "0.60.2" @@ -7182,17 +7148,6 @@ dependencies = [ "syn 2.0.106", ] -[[package]] -name = "windows-interface" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - [[package]] name = "windows-interface" version = "0.59.3" @@ -7237,15 +7192,6 @@ dependencies = [ "windows-strings 0.4.2", ] -[[package]] -name = "windows-result" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-result" version = "0.3.4" @@ -7264,16 +7210,6 @@ dependencies = [ "windows-link 0.2.1", ] -[[package]] -name = "windows-strings" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = [ - "windows-result 0.2.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows-strings" version = "0.4.2" diff --git a/Cargo.toml b/Cargo.toml index d31b04f8d2..59b46705cb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -214,8 +214,8 @@ gungraun = { version = "0.18" } ndarray = "0.16" strum = { version = "0.27", features = ["derive"] } dirs = "6.0" -cef = "148" -cef-dll-sys = "148" +cef = "149" +cef-dll-sys = "149" include_dir = "0.7" tracing-subscriber = { version = "0.3", features = ["env-filter"] } tracing = "0.1" @@ -257,5 +257,5 @@ debug = true # Force cargo to use only one version of the dpi crate (vendoring breaks without this) dpi = { git = "https://github.com/rust-windowing/winit.git" } rfd = { git = "https://github.com/timon-schelling/rfd.git", branch = "graphite" } # TODO: Remove this once https://github.com/PolyMeilex/rfd/pull/317 is merged and released -cef = { git = "https://github.com/timon-schelling/cef-rs.git", branch = "graphite" } -cef-dll-sys = { git = "https://github.com/timon-schelling/cef-rs.git", branch = "graphite" } +cef = { git = "https://github.com/timon-schelling/cef-rs.git", branch = "graphite-149" } +cef-dll-sys = { git = "https://github.com/timon-schelling/cef-rs.git", branch = "graphite-149" } diff --git a/desktop/Cargo.toml b/desktop/Cargo.toml index 832cdf943b..d7f3112b87 100644 --- a/desktop/Cargo.toml +++ b/desktop/Cargo.toml @@ -55,7 +55,7 @@ window_clipboard = "0.5" # Windows-specific dependencies [target.'cfg(target_os = "windows")'.dependencies] -windows = { version = "0.58.0", features = [ +windows = { version = "0.62.2", features = [ "Win32_Foundation", "Win32_Graphics_Dwm", "Win32_Graphics_Gdi", diff --git a/desktop/src/window/win/native_handle.rs b/desktop/src/window/win/native_handle.rs index 89f062690c..113b0154f6 100644 --- a/desktop/src/window/win/native_handle.rs +++ b/desktop/src/window/win/native_handle.rs @@ -61,9 +61,9 @@ impl NativeWindowHandle { 0, 0, 0, - main, + Some(main), + None, None, - HINSTANCE(std::ptr::null_mut()), // Pass the main window's HWND to WM_NCCREATE so the helper can store it. Some(&main as *const _ as _), ) @@ -103,18 +103,36 @@ impl NativeWindowHandle { }; let _ = unsafe { DwmExtendFrameIntoClientArea(main, &margins) }; - let hinst = unsafe { GetModuleHandleW(None) }.unwrap(); + let hinst: HINSTANCE = unsafe { GetModuleHandleW(None) }.unwrap().into(); // Set taskbar icon - if let Ok(big) = unsafe { LoadImageW(hinst, PCWSTR(1usize as *const u16), IMAGE_ICON, GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON), LR_SHARED) } { + if let Ok(big) = unsafe { + LoadImageW( + Some(hinst), + PCWSTR(1usize as *const u16), + IMAGE_ICON, + GetSystemMetrics(SM_CXICON), + GetSystemMetrics(SM_CYICON), + LR_SHARED, + ) + } { unsafe { SetClassLongPtrW(main, GCLP_HICON, big.0 as isize) }; - unsafe { SendMessageW(main, WM_SETICON, WPARAM(ICON_BIG as usize), LPARAM(big.0 as isize)) }; + unsafe { SendMessageW(main, WM_SETICON, Some(WPARAM(ICON_BIG as usize)), Some(LPARAM(big.0 as isize))) }; } // Set window icon - if let Ok(small) = unsafe { LoadImageW(hinst, PCWSTR(1usize as *const u16), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_SHARED) } { + if let Ok(small) = unsafe { + LoadImageW( + Some(hinst), + PCWSTR(1usize as *const u16), + IMAGE_ICON, + GetSystemMetrics(SM_CXSMICON), + GetSystemMetrics(SM_CYSMICON), + LR_SHARED, + ) + } { unsafe { SetClassLongPtrW(main, GCLP_HICONSM, small.0 as isize) }; - unsafe { SendMessageW(main, WM_SETICON, WPARAM(ICON_SMALL as usize), LPARAM(small.0 as isize)) }; + unsafe { SendMessageW(main, WM_SETICON, Some(WPARAM(ICON_SMALL as usize)), Some(LPARAM(small.0 as isize))) }; } // Force window update @@ -197,7 +215,7 @@ unsafe fn ensure_helper_class() { lpfnWndProc: Some(helper_window_handle_message), hInstance: unsafe { GetModuleHandleW(None).unwrap().into() }, hIcon: HICON::default(), - hCursor: unsafe { LoadCursorW(HINSTANCE(std::ptr::null_mut()), IDC_ARROW).unwrap() }, + hCursor: unsafe { LoadCursorW(None, IDC_ARROW).unwrap() }, // No painting; the ring is invisible. hbrBackground: HBRUSH::default(), lpszClassName: PCWSTR(class_name.as_ptr()), @@ -292,7 +310,7 @@ unsafe extern "system" fn helper_window_handle_message(hwnd: HWND, msg: u32, wpa // Extract the main window's HWND from GWLP_USERDATA that we saved earlier. let main_ptr = unsafe { GetWindowLongPtrW(hwnd, GWLP_USERDATA) } as *mut std::ffi::c_void; let main = HWND(main_ptr); - if unsafe { IsWindow(main).as_bool() } { + if unsafe { IsWindow(Some(main)).as_bool() } { let Some(wmsz) = (unsafe { calculate_resize_direction(hwnd, lparam) }) else { return LRESULT(0); }; @@ -301,7 +319,7 @@ unsafe extern "system" fn helper_window_handle_message(hwnd: HWND, msg: u32, wpa let _ = unsafe { SetForegroundWindow(main) }; // Start sizing on the main window in the calculated direction. (SC_SIZE + WMSZ_*) - let _ = unsafe { PostMessageW(main, WM_SYSCOMMAND, WPARAM((SC_SIZE + wmsz) as usize), lparam) }; + let _ = unsafe { PostMessageW(Some(main), WM_SYSCOMMAND, WPARAM((SC_SIZE + wmsz) as usize), lparam) }; } return LRESULT(0); } @@ -325,7 +343,7 @@ unsafe fn position_helper(main: HWND, helper: HWND) { let w = (r.right - r.left) + RESIZE_BAND_THICKNESS * 2; let h = (r.bottom - r.top) + RESIZE_BAND_THICKNESS * 2; - let _ = unsafe { SetWindowPos(helper, main, x, y, w, h, SWP_NOACTIVATE | SWP_NOSENDCHANGING) }; + let _ = unsafe { SetWindowPos(helper, Some(main), x, y, w, h, SWP_NOACTIVATE | SWP_NOSENDCHANGING) }; } unsafe fn calculate_hit(helper: HWND, lparam: LPARAM) -> u32 {