Make pane active when activating one of its items

Antonio Scandurra created

Change summary

crates/workspace/src/pane.rs      |  1 +
crates/workspace/src/workspace.rs | 14 ++++++++------
2 files changed, 9 insertions(+), 6 deletions(-)

Detailed changes

crates/workspace/src/pane.rs 🔗

@@ -326,6 +326,7 @@ impl Pane {
             }
             self.update_active_toolbar(cx);
             self.focus_active_item(cx);
+            self.activate(cx);
             cx.notify();
         }
     }

crates/workspace/src/workspace.rs 🔗

@@ -1028,12 +1028,14 @@ impl Workspace {
     }
 
     fn activate_pane(&mut self, pane: ViewHandle<Pane>, cx: &mut ViewContext<Self>) {
-        self.active_pane = pane;
-        self.status_bar.update(cx, |status_bar, cx| {
-            status_bar.set_active_pane(&self.active_pane, cx);
-        });
-        cx.focus(&self.active_pane);
-        cx.notify();
+        if self.active_pane != pane {
+            self.active_pane = pane;
+            self.status_bar.update(cx, |status_bar, cx| {
+                status_bar.set_active_pane(&self.active_pane, cx);
+            });
+            cx.focus(&self.active_pane);
+            cx.notify();
+        }
     }
 
     fn handle_pane_event(