Expand description
Main view entry point — builds the top-level layout shell and delegates to feature views for each region of the UI.
Layout (when a repo is open):
┌──────────────────────────────────────────┐
│ header toolbar │
├────────┬─────────────────┬───────────────┤
│ │ │ │
│ side- │ commit log │ diff viewer │
│ bar │ │ │
│ │ │ │
├────────┴─────────────────┴───────────────┤
│ staging area (unstaged | staged | msg) │
├──────────────────────────────────────────┤
│ status bar │
└──────────────────────────────────────────┘All vertical and horizontal dividers between panes are draggable — the user can resize the sidebar, commit-log, diff-viewer, and staging area by grabbing the thin divider lines and dragging.
The outer-most widget is a mouse_area that captures on_release events
unconditionally, and on_move events only while a drag is in progress.
This avoids firing PaneDragMove → update() → view() on every cursor
movement when no resize drag is active.