outline_panel: Fix Pin/Unpin tooltip does not update after state changes (#54310)

galuis116 created

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Closes #54309 

Release Notes:

- Fixed an outline panel issue where the pin/unpin tooltip could show
stale text after toggling.

Change summary

crates/outline_panel/src/outline_panel.rs | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

Detailed changes

crates/outline_panel/src/outline_panel.rs 🔗

@@ -4722,10 +4722,10 @@ impl OutlinePanel {
     }
 
     fn render_filter_footer(&mut self, pinned: bool, cx: &mut Context<Self>) -> Div {
-        let (icon, icon_tooltip) = if pinned {
-            (IconName::Unpin, "Unpin Outline")
+        let (pin_button_id, icon, icon_tooltip) = if pinned {
+            ("unpin_button", IconName::Unpin, "Unpin Outline")
         } else {
-            (IconName::Pin, "Pin Active Outline")
+            ("pin_button", IconName::Pin, "Pin Active Outline")
         };
 
         let has_query = self.query(cx).is_some();
@@ -4763,7 +4763,7 @@ impl OutlinePanel {
                         )
                     })
                     .child(
-                        IconButton::new("pin_button", icon)
+                        IconButton::new(pin_button_id, icon)
                             .tooltip(Tooltip::text(icon_tooltip))
                             .shape(IconButtonShape::Square)
                             .on_click(cx.listener(|outline_panel, _, window, cx| {