Fix double borrow when resizing bottom dock (#52383)

Fixes a double borrow panic when resizing the bottom dock, introduced in
#52276

Release Notes:

- N/A
This commit is contained in:
Max Brunsfeld 2026-03-25 00:23:17 -07:00 committed by GitHub
parent 103fa37156
commit 9bbdff43cc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 7 additions and 39 deletions

View file

@ -835,16 +835,6 @@ impl Dock {
}
pub fn resize_active_panel(
&mut self,
size: Option<Pixels>,
window: &mut Window,
cx: &mut Context<Self>,
) {
let ratio = size.and_then(|size| self.flexible_size_ratio_for_pixels(size, window, cx));
self.resize_active_panel_with_ratio(size, ratio, window, cx);
}
pub fn resize_active_panel_with_ratio(
&mut self,
size: Option<Pixels>,
ratio: Option<f32>,
@ -878,16 +868,6 @@ impl Dock {
}
pub fn resize_all_panels(
&mut self,
size: Option<Pixels>,
window: &mut Window,
cx: &mut Context<Self>,
) {
let ratio = size.and_then(|size| self.flexible_size_ratio_for_pixels(size, window, cx));
self.resize_all_panels_with_ratio(size, ratio, window, cx);
}
pub fn resize_all_panels_with_ratio(
&mut self,
size: Option<Pixels>,
ratio: Option<f32>,
@ -975,18 +955,6 @@ impl Dock {
.unwrap_or_else(|| entry.panel.default_size(window, cx))
}
fn flexible_size_ratio_for_pixels(
&self,
size: Pixels,
window: &Window,
cx: &App,
) -> Option<f32> {
let workspace = self.workspace.upgrade()?;
workspace
.read(cx)
.flexible_dock_ratio_for_size(self.position, size, window, cx)
}
pub(crate) fn load_persisted_size_state(
workspace: &Workspace,
panel_key: &'static str,
@ -1059,7 +1027,7 @@ impl Render for Dock {
MouseButton::Left,
cx.listener(|dock, e: &MouseUpEvent, window, cx| {
if e.click_count == 2 {
dock.resize_active_panel(None, window, cx);
dock.resize_active_panel(None, None, window, cx);
dock.workspace
.update(cx, |workspace, cx| {
workspace.serialize_workspace(window, cx);

View file

@ -7369,9 +7369,9 @@ impl Workspace {
.resize_all_panels_in_dock
.contains(&DockPosition::Left)
{
left_dock.resize_all_panels_with_ratio(Some(size), ratio, window, cx);
left_dock.resize_all_panels(Some(size), ratio, window, cx);
} else {
left_dock.resize_active_panel_with_ratio(Some(size), ratio, window, cx);
left_dock.resize_active_panel(Some(size), ratio, window, cx);
}
});
}
@ -7393,9 +7393,9 @@ impl Workspace {
.resize_all_panels_in_dock
.contains(&DockPosition::Right)
{
right_dock.resize_all_panels_with_ratio(Some(size), ratio, window, cx);
right_dock.resize_all_panels(Some(size), ratio, window, cx);
} else {
right_dock.resize_active_panel_with_ratio(Some(size), ratio, window, cx);
right_dock.resize_active_panel(Some(size), ratio, window, cx);
}
});
}
@ -7407,9 +7407,9 @@ impl Workspace {
.resize_all_panels_in_dock
.contains(&DockPosition::Bottom)
{
bottom_dock.resize_all_panels(Some(size), window, cx);
bottom_dock.resize_all_panels(Some(size), None, window, cx);
} else {
bottom_dock.resize_active_panel(Some(size), window, cx);
bottom_dock.resize_active_panel(Some(size), None, window, cx);
}
});
}