diff options
| author | Kirill Chibisov <contact@kchibisov.com> | 2023-11-02 14:47:35 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2023-11-02 16:23:05 +0400 |
| commit | 6a81d8f2a63a8b18aafbe1f6b12bcdcd39cbd83e (patch) | |
| tree | c9aa186e9b7b4fb98b320e18d2c760ec8d954139 | |
| parent | 889d062df7d89bf8084414c6f8fd87075c3cf85a (diff) | |
| download | niri-6a81d8f2a63a8b18aafbe1f6b12bcdcd39cbd83e.tar.gz niri-6a81d8f2a63a8b18aafbe1f6b12bcdcd39cbd83e.tar.bz2 niri-6a81d8f2a63a8b18aafbe1f6b12bcdcd39cbd83e.zip | |
Check alternative cursor names when loading cursor
Some themes don't have all the cursors specified as in w3c
specification, thus try to check for alternative names as well.
| -rw-r--r-- | Cargo.lock | 4 | ||||
| -rw-r--r-- | src/cursor.rs | 11 |
2 files changed, 13 insertions, 2 deletions
@@ -698,9 +698,9 @@ dependencies = [ [[package]] name = "cursor-icon" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740bb192a8e2d1350119916954f4409ee7f62f149b536911eeb78ba5a20526bf" +checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" [[package]] name = "deranged" diff --git a/src/cursor.rs b/src/cursor.rs index bef62b51..6bf92cd1 100644 --- a/src/cursor.rs +++ b/src/cursor.rs @@ -111,6 +111,17 @@ impl CursorManager { .or_insert_with_key(|(icon, scale)| { let size = self.size as i32 * scale; let mut cursor = Self::load_xcursor(&self.theme, icon.name(), size); + + // Check alternative names to account for non-compliant themes. + if cursor.is_err() { + for name in icon.alt_names() { + cursor = Self::load_xcursor(&self.theme, name, size); + if cursor.is_ok() { + break; + } + } + } + if let Err(err) = &cursor { warn!("error loading xcursor {}@{size}: {err:?}", icon.name()); } |
