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:
2026-06-09 23:36:13 +02:00
co-authored by Claude Opus 4.8
parent cbeb2c2d5a
commit 76346122aa
6 changed files with 113 additions and 2 deletions
+12 -1
View File
@@ -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,
);
},
);
}
+6 -1
View File
@@ -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