diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index 7cc7c32af2e2da232b02b1444bceab1f636b662b..c64dc4450d4f9f4b8f383e0ca2756e8ddab2e311 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -18,7 +18,7 @@ jobs:
     runs-on: ${{ matrix.os }}
 
     steps:
-    - uses: dtolnay/rust-toolchain@stable
+    - uses: dtolnay/rust-toolchain@1.70
     - uses: actions/checkout@v3
     - uses: actions/cache@v3
       with:
diff --git a/src/event_dispatcher.rs b/src/event_dispatcher.rs
index 35b174753f1176b68d941a7d0d30a7c60c4a9109..ddd2b078f1716a5c1e2d2dba8ea9010756992de1 100644
--- a/src/event_dispatcher.rs
+++ b/src/event_dispatcher.rs
@@ -384,8 +384,7 @@ impl EventDispatcher {
             } else {
                 // No capturing widget -> process cursor events as normal
                 let mut stack: Vec<TreeNode> = vec![(root, 0)];
-                while !stack.is_empty() {
-                    let (current, depth) = stack.pop().unwrap();
+                while let Some((current, depth)) = stack.pop() {
                     let mut enter_children = true;
 
                     if let Some(entity_ref) = world.get_entity(current.0) {