Add an action to toggle the outline from the buffer search bar (#25225)

This was annoying.

Release Notes:

- Fixed a bug where you couldn't open the outline modal when focus was
in the buffer search bar.
This commit is contained in:
Mikayla Maki 2025-02-19 21:23:10 -08:00 committed by GitHub
parent 0c0201c79f
commit cc46a1fe30
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 20 additions and 3 deletions

View file

@ -13,8 +13,8 @@ use client::{
};
use futures::{channel::mpsc, StreamExt};
use gpui::{
AnyElement, AnyView, App, Context, Entity, EntityId, EventEmitter, FocusHandle, Focusable,
Font, HighlightStyle, Pixels, Point, Render, SharedString, Task, WeakEntity, Window,
Action, AnyElement, AnyView, App, Context, Entity, EntityId, EventEmitter, FocusHandle,
Focusable, Font, HighlightStyle, Pixels, Point, Render, SharedString, Task, WeakEntity, Window,
};
use project::{Project, ProjectEntryId, ProjectPath};
use schemars::JsonSchema;
@ -518,6 +518,7 @@ pub trait ItemHandle: 'static + Send {
fn workspace_settings<'a>(&self, cx: &'a App) -> &'a WorkspaceSettings;
fn preserve_preview(&self, cx: &App) -> bool;
fn include_in_nav_history(&self) -> bool;
fn relay_action(&self, action: Box<dyn Action>, window: &mut Window, cx: &mut App);
}
pub trait WeakItemHandle: Send + Sync {
@ -978,6 +979,13 @@ impl<T: Item> ItemHandle for Entity<T> {
fn include_in_nav_history(&self) -> bool {
T::include_in_nav_history()
}
fn relay_action(&self, action: Box<dyn Action>, window: &mut Window, cx: &mut App) {
self.update(cx, |this, cx| {
this.focus_handle(cx).focus(window);
window.dispatch_action(action, cx);
})
}
}
impl From<Box<dyn ItemHandle>> for AnyView {