gpui: Don't panic on failing to set X11 cursor style (#21689)

Cole Miller created

One more panic (well, two) that should be a `log_err`.

Release Notes:

- N/A

Change summary

crates/gpui/src/platform/linux/x11/client.rs |  8 +++++---
crates/util/src/util.rs                      | 10 ++++++++++
2 files changed, 15 insertions(+), 3 deletions(-)

Detailed changes

crates/gpui/src/platform/linux/x11/client.rs 🔗

@@ -9,6 +9,7 @@ use std::time::{Duration, Instant};
 use calloop::generic::{FdWrapper, Generic};
 use calloop::{EventLoop, LoopHandle, RegistrationToken};
 
+use anyhow::Context as _;
 use collections::HashMap;
 use http_client::Url;
 use smallvec::SmallVec;
@@ -1417,9 +1418,10 @@ impl LinuxClient for X11Client {
                     ..Default::default()
                 },
             )
-            .expect("failed to change window cursor")
-            .check()
-            .unwrap();
+            .anyhow()
+            .and_then(|cookie| cookie.check().anyhow())
+            .context("setting cursor style")
+            .log_err();
     }
 
     fn open_uri(&self, uri: &str) {

crates/util/src/util.rs 🔗

@@ -206,6 +206,9 @@ pub trait ResultExt<E> {
     /// Assert that this result should never be an error in development or tests.
     fn debug_assert_ok(self, reason: &str) -> Self;
     fn warn_on_err(self) -> Option<Self::Ok>;
+    fn anyhow(self) -> anyhow::Result<Self::Ok>
+    where
+        E: Into<anyhow::Error>;
 }
 
 impl<T, E> ResultExt<E> for Result<T, E>
@@ -243,6 +246,13 @@ where
             }
         }
     }
+
+    fn anyhow(self) -> anyhow::Result<T>
+    where
+        E: Into<anyhow::Error>,
+    {
+        self.map_err(Into::into)
+    }
 }
 
 fn log_error_with_caller<E>(caller: core::panic::Location<'_>, error: E, level: log::Level)