Defer pane interaction when opening excerpts in diagnostics view
Activating a new item causes the current item to be deactivated. We're the current item, but we're on the stack, so we panic if we try to do this synchronously. If we use defer to wait until we're off the stack it works.
This commit is contained in:
parent
b755b2d602
commit
e61a5b172c
1 changed files with 4 additions and 1 deletions
|
@ -193,7 +193,10 @@ impl ProjectDiagnosticsEditor {
|
|||
}
|
||||
}
|
||||
|
||||
workspace.update(cx, |workspace, cx| {
|
||||
// We defer the pane interaction because we ourselves are a workspace item
|
||||
// and activating a new item causes the pane to call a method on us reentrantly,
|
||||
// which panics if we're on the stack.
|
||||
workspace.defer(cx, |workspace, cx| {
|
||||
for (buffer, ranges) in new_selections_by_buffer {
|
||||
let buffer = BufferItemHandle(buffer);
|
||||
if !workspace.activate_pane_for_item(&buffer, cx) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue