mirror of
https://github.com/zed-industries/zed.git
synced 2026-05-25 23:04:27 +00:00
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:
parent
103fa37156
commit
9bbdff43cc
2 changed files with 7 additions and 39 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue