assistant2: Fix focus issues with opening history (#22169)
This PR fixes some focus issues with opening the thread history, which required that the Assistant2 panel be focused in order for the history to open. Release Notes: - N/A
This commit is contained in:
parent
918866b7de
commit
6aad616165
1 changed files with 13 additions and 3 deletions
|
@ -36,6 +36,12 @@ pub fn init(cx: &mut AppContext) {
|
||||||
panel.update(cx, |panel, cx| panel.new_thread(cx));
|
panel.update(cx, |panel, cx| panel.new_thread(cx));
|
||||||
workspace.focus_panel::<AssistantPanel>(cx);
|
workspace.focus_panel::<AssistantPanel>(cx);
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
.register_action(|workspace, _: &OpenHistory, cx| {
|
||||||
|
if let Some(panel) = workspace.panel::<AssistantPanel>(cx) {
|
||||||
|
workspace.focus_panel::<AssistantPanel>(cx);
|
||||||
|
panel.update(cx, |panel, cx| panel.open_history(cx));
|
||||||
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
@ -164,6 +170,12 @@ impl AssistantPanel {
|
||||||
self.message_editor.focus_handle(cx).focus(cx);
|
self.message_editor.focus_handle(cx).focus(cx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn open_history(&mut self, cx: &mut ViewContext<Self>) {
|
||||||
|
self.active_view = ActiveView::History;
|
||||||
|
self.history.focus_handle(cx).focus(cx);
|
||||||
|
cx.notify();
|
||||||
|
}
|
||||||
|
|
||||||
pub(crate) fn open_thread(&mut self, thread_id: &ThreadId, cx: &mut ViewContext<Self>) {
|
pub(crate) fn open_thread(&mut self, thread_id: &ThreadId, cx: &mut ViewContext<Self>) {
|
||||||
let Some(thread) = self
|
let Some(thread) = self
|
||||||
.thread_store
|
.thread_store
|
||||||
|
@ -579,9 +591,7 @@ impl Render for AssistantPanel {
|
||||||
this.new_thread(cx);
|
this.new_thread(cx);
|
||||||
}))
|
}))
|
||||||
.on_action(cx.listener(|this, _: &OpenHistory, cx| {
|
.on_action(cx.listener(|this, _: &OpenHistory, cx| {
|
||||||
this.active_view = ActiveView::History;
|
this.open_history(cx);
|
||||||
this.history.focus_handle(cx).focus(cx);
|
|
||||||
cx.notify();
|
|
||||||
}))
|
}))
|
||||||
.child(self.render_toolbar(cx))
|
.child(self.render_toolbar(cx))
|
||||||
.map(|parent| match self.active_view {
|
.map(|parent| match self.active_view {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue