Skip to main content

Module view

Module view 

Source
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.