Do not dismiss buffer search when any modal is present
Co-authored-by: Piotr Osiewicz <piotr@zed.dev>
This commit is contained in:
parent
a579ef17d7
commit
8b71b1d07b
3 changed files with 17 additions and 4 deletions
|
@ -43,7 +43,7 @@ pub enum Event {
|
|||
}
|
||||
|
||||
pub fn init(cx: &mut AppContext) {
|
||||
cx.observe_new_views(|editor: &mut Workspace, _| BufferSearchBar::register(editor))
|
||||
cx.observe_new_views(|workspace: &mut Workspace, _| BufferSearchBar::register(workspace))
|
||||
.detach();
|
||||
}
|
||||
|
||||
|
@ -479,6 +479,11 @@ impl SearchActionsRegistrar for Workspace {
|
|||
callback: fn(&mut BufferSearchBar, &A, &mut ViewContext<BufferSearchBar>),
|
||||
) {
|
||||
self.register_action(move |workspace, action: &A, cx| {
|
||||
if workspace.has_active_modal(cx) {
|
||||
cx.propagate();
|
||||
return;
|
||||
}
|
||||
|
||||
let pane = workspace.active_pane();
|
||||
pane.update(cx, move |this, cx| {
|
||||
this.toolbar().update(cx, move |this, cx| {
|
||||
|
@ -539,11 +544,11 @@ impl BufferSearchBar {
|
|||
this.select_all_matches(action, cx);
|
||||
});
|
||||
registrar.register_handler(|this, _: &editor::Cancel, cx| {
|
||||
if !this.dismissed {
|
||||
if this.dismissed {
|
||||
cx.propagate();
|
||||
} else {
|
||||
this.dismiss(&Dismiss, cx);
|
||||
return;
|
||||
}
|
||||
cx.propagate();
|
||||
});
|
||||
registrar.register_handler(|this, deploy, cx| {
|
||||
this.deploy(deploy, cx);
|
||||
|
|
|
@ -101,6 +101,10 @@ impl ModalLayer {
|
|||
let active_modal = self.active_modal.as_ref()?;
|
||||
active_modal.modal.view().downcast::<V>().ok()
|
||||
}
|
||||
|
||||
pub fn has_active_modal(&self) -> bool {
|
||||
self.active_modal.is_some()
|
||||
}
|
||||
}
|
||||
|
||||
impl Render for ModalLayer {
|
||||
|
|
|
@ -3383,6 +3383,10 @@ impl Workspace {
|
|||
div
|
||||
}
|
||||
|
||||
pub fn has_active_modal(&self, cx: &WindowContext<'_>) -> bool {
|
||||
self.modal_layer.read(cx).has_active_modal()
|
||||
}
|
||||
|
||||
pub fn active_modal<V: ManagedView + 'static>(
|
||||
&mut self,
|
||||
cx: &ViewContext<Self>,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue