diff --git a/.github/workflows/windows.yaml b/.github/workflows/windows.yaml index 146e4345..a60c5a6b 100644 --- a/.github/workflows/windows.yaml +++ b/.github/workflows/windows.yaml @@ -77,7 +77,7 @@ jobs: run: | cargo build --locked --release --target ${{ matrix.target }} - name: Upload the built artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: komorebi-${{ matrix.target }} path: | diff --git a/Cargo.lock b/Cargo.lock index 69ad8d0d..04246e1e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -244,9 +244,9 @@ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" [[package]] name = "eyre" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9289ed2c0440a6536e65119725cf91fc2c6b5e513bfd2e36e1134d7cca6ca12f" +checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb" dependencies = [ "indenter", "once_cell", @@ -524,9 +524,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.121" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f" +checksum = "cb691a747a7ab48abc15c5b42066eaafde10dc427e3b6ee2a1cf43db04c763bd" [[package]] name = "linked-hash-map" @@ -834,18 +834,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" +checksum = "ec757218438d5fda206afc041538b2f6d889286160d649a86a24d37e1235afd1" dependencies = [ "unicode-xid", ] [[package]] name = "quote" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "632d02bff7f874a36f33ea8bb416cd484b90cc66c1194b1a1110d067a7013f58" +checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1" dependencies = [ "proc-macro2", ] @@ -910,9 +910,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.5.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" +checksum = "fd249e82c21598a9a426a4e00dd7adc1d640b22445ec8545feef801d1a74c221" dependencies = [ "autocfg", "crossbeam-deque", @@ -922,14 +922,13 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.9.1" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" +checksum = "9f51245e1e62e1f1629cbfec37b5793bbabcaeb90f30e94d2ba03564687353e4" dependencies = [ "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "lazy_static", "num_cpus", ] @@ -1157,9 +1156,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.90" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "704df27628939572cd88d33f171cd6f896f4eaca85252c6e0a72d8d8287ee86f" +checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d" dependencies = [ "proc-macro2", "quote", @@ -1168,9 +1167,9 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.23.6" +version = "0.23.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f3c0db8e08e06cfd352a043bd0143498fb7d42783a6e941da83b55464eb27d2" +checksum = "4eea2ed6847da2e0c7289f72cb4f285f0bd704694ca067d32be811b2a45ea858" dependencies = [ "cfg-if 1.0.0", "core-foundation-sys", @@ -1272,9 +1271,9 @@ dependencies = [ [[package]] name = "tracing" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a1bdf54a7c28a2bbf701e1d2233f6c77f473486b94bee4f9678da5a148dca7f" +checksum = "80b9fa4360528139bc96100c160b7ae879f5567f49f1782b0b02035b0358ebf3" dependencies = [ "cfg-if 1.0.0", "pin-project-lite", @@ -1306,9 +1305,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.24" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90442985ee2f57c9e1b548ee72ae842f4a9a20e3f417cc38dbc5dc684d9bb4ee" +checksum = "6dfce9f3241b150f36e8e54bb561a742d5daa1a47b5dd9a5ce369fd4a4db2210" dependencies = [ "lazy_static", "valuable", @@ -1337,9 +1336,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9df98b037d039d03400d9dd06b0f8ce05486b5f25e9a2d7d36196e142ebbc52" +checksum = "4bc28f93baff38037f64e6f43d34cfa1605f27a49c34e8a04c5e78b0babf2596" dependencies = [ "ansi_term", "lazy_static", @@ -1454,15 +1453,15 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.34.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45296b64204227616fdbf2614cefa4c236b98ee64dfaaaa435207ed99fe7829f" +checksum = "08746b4b7ac95f708b3cccceb97b7f9a21a8916dd47fc99b0e6aaf7208f26fd7" dependencies = [ - "windows_aarch64_msvc 0.34.0", - "windows_i686_gnu 0.34.0", - "windows_i686_msvc 0.34.0", - "windows_x86_64_gnu 0.34.0", - "windows_x86_64_msvc 0.34.0", + "windows_aarch64_msvc 0.35.0", + "windows_i686_gnu 0.35.0", + "windows_i686_msvc 0.35.0", + "windows_x86_64_gnu 0.35.0", + "windows_x86_64_msvc 0.35.0", ] [[package]] @@ -1503,6 +1502,12 @@ version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" +[[package]] +name = "windows_aarch64_msvc" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3bc5134e8ce0da5d64dcec3529793f1d33aee5a51fc2b4662e0f881dd463e6" + [[package]] name = "windows_i686_gnu" version = "0.28.0" @@ -1515,6 +1520,12 @@ version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" +[[package]] +name = "windows_i686_gnu" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0343a6f35bf43a07b009b8591b78b10ea03de86b06f48e28c96206cd0f453b50" + [[package]] name = "windows_i686_msvc" version = "0.28.0" @@ -1527,6 +1538,12 @@ version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" +[[package]] +name = "windows_i686_msvc" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1acdcbf4ca63d8e7a501be86fee744347186275ec2754d129ddeab7a1e3a02e4" + [[package]] name = "windows_x86_64_gnu" version = "0.28.0" @@ -1539,6 +1556,12 @@ version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" +[[package]] +name = "windows_x86_64_gnu" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "893c0924c5a990ec73cd2264d1c0cba1773a929e1a3f5dbccffd769f8c4edebb" + [[package]] name = "windows_x86_64_msvc" version = "0.28.0" @@ -1551,6 +1574,12 @@ version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" +[[package]] +name = "windows_x86_64_msvc" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a29bd61f32889c822c99a8fdf2e93378bd2fae4d7efd2693fab09fcaaf7eff4b" + [[package]] name = "winput" version = "0.2.5" diff --git a/komorebi-core/Cargo.toml b/komorebi-core/Cargo.toml index a7c54fa5..7e4876c1 100644 --- a/komorebi-core/Cargo.toml +++ b/komorebi-core/Cargo.toml @@ -15,7 +15,7 @@ strum = { version = "0.24", features = ["derive"] } schemars = "0.8" [dependencies.windows] -version = "0.34" +version = "0.35" features = [ "Win32_Foundation", ] diff --git a/komorebi/Cargo.toml b/komorebi/Cargo.toml index 18ed5b46..72b3e72d 100644 --- a/komorebi/Cargo.toml +++ b/komorebi/Cargo.toml @@ -41,7 +41,7 @@ winreg = "0.10" schemars = "0.8" [dependencies.windows] -version = "0.34" +version = "0.35" features = [ "Win32_Foundation", "Win32_Graphics_Dwm", diff --git a/komorebi/src/windows_api.rs b/komorebi/src/windows_api.rs index 5fa69165..33935d94 100644 --- a/komorebi/src/windows_api.rs +++ b/komorebi/src/windows_api.rs @@ -124,15 +124,16 @@ pub trait ProcessWindowsCrateResult { fn process(self) -> Result; } -macro_rules! impl_process_windows_crate_result { +macro_rules! impl_process_windows_crate_integer_wrapper_result { ( $($input:ty => $deref:ty),+ $(,)? ) => ( paste::paste! { $( - impl ProcessWindowsCrateResult<$deref> for WindowsCrateResult<$input> { + impl ProcessWindowsCrateResult<$deref> for $input { fn process(self) -> Result<$deref> { - match self { - Ok(value) => Ok(value.0), - Err(error) => Err(error.into()), + if self.0 == 0 { + Ok(self.0) + } else { + Err(std::io::Error::last_os_error().into()) } } } @@ -141,7 +142,7 @@ macro_rules! impl_process_windows_crate_result { ); } -impl_process_windows_crate_result!( +impl_process_windows_crate_integer_wrapper_result!( HWND => isize, ); @@ -296,7 +297,7 @@ impl WindowsApi { } pub fn foreground_window() -> Result { - unsafe { GetForegroundWindow() }.ok().process() + unsafe { GetForegroundWindow() }.process() } pub fn set_foreground_window(hwnd: HWND) -> Result<()> { @@ -305,16 +306,16 @@ impl WindowsApi { #[allow(dead_code)] pub fn top_window() -> Result { - unsafe { GetTopWindow(HWND::default()) }.ok().process() + unsafe { GetTopWindow(HWND::default()) }.process() } pub fn desktop_window() -> Result { - unsafe { GetDesktopWindow() }.ok().process() + unsafe { GetDesktopWindow() }.process() } #[allow(dead_code)] pub fn next_window(hwnd: HWND) -> Result { - unsafe { GetWindow(hwnd, GW_HWNDNEXT) }.ok().process() + unsafe { GetWindow(hwnd, GW_HWNDNEXT) }.process() } #[allow(dead_code)] @@ -352,7 +353,7 @@ impl WindowsApi { } pub fn window_from_point(point: POINT) -> Result { - unsafe { WindowFromPoint(point) }.ok().process() + unsafe { WindowFromPoint(point) }.process() } pub fn window_at_cursor_pos() -> Result { @@ -401,7 +402,7 @@ impl WindowsApi { } pub fn set_focus(hwnd: HWND) -> Result<()> { - unsafe { SetFocus(hwnd) }.ok().map(|_| ()).process() + unsafe { SetFocus(hwnd) }.process().map(|_| ()) } #[allow(dead_code)] @@ -451,9 +452,7 @@ impl WindowsApi { inherit_handle: bool, process_id: u32, ) -> Result { - unsafe { OpenProcess(access_rights, inherit_handle, process_id) } - .ok() - .process() + unsafe { OpenProcess(access_rights, inherit_handle, process_id) }.process() } pub fn process_handle(process_id: u32) -> Result { diff --git a/komorebic/Cargo.toml b/komorebic/Cargo.toml index d479441f..5ba2c50e 100644 --- a/komorebic/Cargo.toml +++ b/komorebic/Cargo.toml @@ -28,7 +28,7 @@ serde_yaml = "0.8" uds_windows = "1" [dependencies.windows] -version = "0.34" +version = "0.35" features = [ "Win32_Foundation", "Win32_UI_WindowsAndMessaging"