From 6a81d8f2a63a8b18aafbe1f6b12bcdcd39cbd83e Mon Sep 17 00:00:00 2001 From: Kirill Chibisov Date: Thu, 2 Nov 2023 14:47:35 +0400 Subject: 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. --- src/cursor.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src') 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()); } -- cgit