Add example compilation to CI (#24182)

Mikayla Maki created

Stop https://github.com/zed-industries/zed/pull/24165 from happening

Release Notes:

- N/A

Change summary

.github/workflows/ci.yml        |  2 ++
crates/gpui/src/elements/img.rs | 10 +++++++---
2 files changed, 9 insertions(+), 3 deletions(-)

Detailed changes

.github/workflows/ci.yml 🔗

@@ -135,6 +135,7 @@ jobs:
           cargo check -p gpui --features "macos-blade"
           cargo check -p workspace
           cargo build -p remote_server
+          cargo check -p gpui --examples
           script/check-rust-livekit-macos
 
       # Since the macOS runners are stateful, so we need to remove the config file to prevent potential bug.
@@ -181,6 +182,7 @@ jobs:
         run: |
           cargo build -p zed
           cargo check -p workspace
+          cargo check -p gpui --examples
 
       # Even the Linux runner is not stateful, in theory there is no need to do this cleanup.
       # But, to avoid potential issues in the future if we choose to use a stateful Linux runner and forget to add code

crates/gpui/src/elements/img.rs 🔗

@@ -353,11 +353,15 @@ impl Element for Img {
                                         }
                                     }
                                 } else {
-                                    let parent_view_id = window.parent_view_id().unwrap();
+                                    let parent_view_id = window.parent_view_id();
                                     let task = window.spawn(cx, |mut cx| async move {
                                         cx.background_executor().timer(LOADING_DELAY).await;
-                                        cx.update(move |_, cx| {
-                                            cx.notify(parent_view_id);
+                                        cx.update(move |window, cx| {
+                                            if let Some(parent_view_id) = parent_view_id {
+                                                cx.notify(parent_view_id);
+                                            } else {
+                                                window.refresh();
+                                            }
                                         })
                                         .ok();
                                     });