@@ -1,7 +1,8 @@
use crate::{status_bar::StatusItemView, Axis, Workspace};
use gpui::{
- div, Action, AnyView, AppContext, Div, Entity, EntityId, EventEmitter, FocusHandle,
- ParentElement, Render, Styled, Subscription, View, ViewContext, WeakView, WindowContext,
+ div, px, Action, AnyView, AppContext, Component, Div, Entity, EntityId, EventEmitter,
+ FocusHandle, ParentElement, Render, Styled, Subscription, View, ViewContext, WeakView,
+ WindowContext,
};
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
@@ -429,7 +430,14 @@ impl Render for Dock {
fn render(&mut self, cx: &mut ViewContext<Self>) -> Self::Element {
if let Some(entry) = self.visible_entry() {
- div().size_full().child(entry.panel.to_any())
+ let size = entry.panel.size(cx);
+
+ div()
+ .map(|this| match self.position().axis() {
+ Axis::Horizontal => this.w(px(size)).h_full(),
+ Axis::Vertical => this.h(px(size)).w_full(),
+ })
+ .child(entry.panel.to_any())
} else {
div()
}
@@ -69,7 +69,8 @@ use std::{
};
use theme2::ActiveTheme;
pub use toolbar::{ToolbarItemLocation, ToolbarItemView};
-use ui::{h_stack, Button, ButtonVariant, KeyBinding, Label, TextColor, TextTooltip};
+use ui::TextColor;
+use ui::{h_stack, Button, ButtonVariant, KeyBinding, Label, TextTooltip};
use util::ResultExt;
use uuid::Uuid;
pub use workspace_settings::{AutosaveSetting, WorkspaceSettings};
@@ -3744,7 +3745,15 @@ impl Render for Workspace {
.flex_row()
.flex_1()
.h_full()
- .child(div().flex().flex_1().child(self.left_dock.clone()))
+ // Left Dock
+ .child(
+ div()
+ .flex()
+ .flex_none()
+ .overflow_hidden()
+ .child(self.left_dock.clone()),
+ )
+ // Panes
.child(
div()
.flex()
@@ -3761,7 +3770,14 @@ impl Render for Workspace {
))
.child(div().flex().flex_1().child(self.bottom_dock.clone())),
)
- .child(div().flex().flex_1().child(self.right_dock.clone())),
+ // Right Dock
+ .child(
+ div()
+ .flex()
+ .flex_none()
+ .overflow_hidden()
+ .child(self.right_dock.clone()),
+ ),
),
)
.child(self.status_bar.clone())