fix bottom input box alignment when status bar hidden (T-298)
The composer (and any bottom-most pane content) ran flush into the window's bottom resize-drag strip when the status bar was hidden, since the bar normally covers that edge. Reserve ClideResizeBorder.edgeThickness as a bottom inset in RootLayout whenever the status bar is not visible, so the interaction zone bottom-anchors consistently either way. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+12
-1
@@ -234,7 +234,7 @@ class RootLayout extends StatelessWidget {
|
||||
final dockMax = (((MediaQuery.of(ctx).size.height) - statusHeight) * 0.5).clamp(80.0, double.infinity).toDouble();
|
||||
final dockHeight = dockVisible ? ((a.sizeOf(Slots.dock) ?? 200).clamp(0.0, dockMax)).toDouble() : 0.0;
|
||||
|
||||
return Column(
|
||||
final column = Column(
|
||||
children: [
|
||||
Expanded(
|
||||
child: Row(
|
||||
@@ -310,6 +310,17 @@ class RootLayout extends StatelessWidget {
|
||||
),
|
||||
],
|
||||
);
|
||||
// When the status bar is hidden it no longer occupies the window's
|
||||
// bottom edge, so the bottom-most content (the Claude composer, an
|
||||
// editor, a terminal) would otherwise run flush into the resize-drag
|
||||
// strip and look jammed against the window bottom (T-298). Reserve a
|
||||
// matching inset so the interaction zone bottom-anchors consistently,
|
||||
// independent of status-bar visibility.
|
||||
if (statusVisible) return column;
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(bottom: ClideResizeBorder.edgeThickness),
|
||||
child: column,
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@@ -7,7 +7,12 @@ class ClideResizeBorder extends StatelessWidget {
|
||||
final WindowControls windowControls;
|
||||
final Widget child;
|
||||
|
||||
static const double _edge = 6;
|
||||
/// Thickness of the window-edge resize-drag strips. Exposed so layouts can
|
||||
/// reserve a matching inset for bottom-most content that would otherwise sit
|
||||
/// under the bottom drag zone when no chrome (e.g. the status bar) covers it
|
||||
/// (T-298).
|
||||
static const double edgeThickness = 6;
|
||||
static const double _edge = edgeThickness;
|
||||
static const double _corner = 12;
|
||||
|
||||
@override
|
||||
|
||||
Reference in New Issue
Block a user