replace OS title bar with per-column 24px hats (D-057)
Hide GTK title bar via gtk_window_set_decorated(FALSE). Add
MethodChannel('clide/window') for drag/minimize/maximize/close
wired to GTK window functions. Dart WindowControls service wraps
the channel. Three per-column hats in RootLayout: left (macOS
traffic lights or plain drag), center (project > branch label),
right (minimize/maximize/close glyph buttons on Linux). Resolves
Q-006.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
+16
-3
@@ -141,7 +141,10 @@ class RootLayout extends StatelessWidget {
|
||||
else if (sidebarVisible) ...[
|
||||
SizedBox(
|
||||
width: sidebarSize,
|
||||
child: SlotHost(slot: Slots.sidebar),
|
||||
child: Column(children: [
|
||||
ColumnHat.left(windowControls: kernel.window),
|
||||
Expanded(child: SlotHost(slot: Slots.sidebar)),
|
||||
]),
|
||||
),
|
||||
DragResizeHandle(
|
||||
arrangement: a,
|
||||
@@ -149,7 +152,14 @@ class RootLayout extends StatelessWidget {
|
||||
axis: Axis.horizontal,
|
||||
),
|
||||
],
|
||||
const Expanded(child: SlotHost(slot: Slots.workspace)),
|
||||
Expanded(child: Column(children: [
|
||||
ColumnHat.center(
|
||||
windowControls: kernel.window,
|
||||
project: kernel.project.current?.path.split('/').last,
|
||||
branch: null,
|
||||
),
|
||||
const Expanded(child: SlotHost(slot: Slots.workspace)),
|
||||
])),
|
||||
if (contextVisible && contextCollapsed)
|
||||
ClideSpine(
|
||||
label: 'context',
|
||||
@@ -164,7 +174,10 @@ class RootLayout extends StatelessWidget {
|
||||
),
|
||||
SizedBox(
|
||||
width: contextSize,
|
||||
child: SlotHost(slot: Slots.contextPanel),
|
||||
child: Column(children: [
|
||||
ColumnHat.right(windowControls: kernel.window),
|
||||
Expanded(child: SlotHost(slot: Slots.contextPanel)),
|
||||
]),
|
||||
),
|
||||
],
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user