Repository navigation
feat(native): split layouts as window tabs, with delegates beside the orchestrator - #821
Merged
Merged
Conversation
Layouts are tabs in the topbar strip, after the projects, and can mix projects. Each one is a binary split tree built by dragging a card or a pane header onto a pane's edges, or from the keyboard; the focused pane can be zoomed, rotated or unsplit, and a layout left with one pane closes. Layouts persist under lich.native.layouts, apart from the web's walls.
A session that opened others, in any project, offers them in the footer while it is in no layout: Show beside opens a layout with it at the left and its delegates stacked at the right, as many as fit the pane floor. In a layout its pane header counts the delegates there and adds the rest under the last one, asking first before taking one out of another layout. A card in a layout names it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Split layouts for the native window, designed from scratch rather than ported from the web's walls.
originSessionId), offers them in the footer while it is in no layout: 3 delegates · Show beside opens a layout with it at the left and its delegates stacked at the right, as many as fit. In a layout its pane header reads 2 of 3 here · Add 1. A delegate in another layout is moved only after a confirm. A card in a layout names it.How
layouts.gois the pure tree (paneNode, split/remove/move/rotate/stack), persisted underlich.native.layouts; the web'slich.panesis untouched and neither window reads the other's.ui.SortCarrygainsHold(Gio dereferences a forgotten drag source after a tab switch takes the list off screen) andRelease;SortList.Leaveslets a card leave the list without the list reshuffling.columnRoom) counts panes against the 180dp floor from the last frame's rects.Notes
docs/ceilings.mdgains a bullet on the native layouts: pane floor, exit band and file drop only on the focused pane, pinned cards can't be dragged, zones outside the carry,Hold, the four native-only hotkeys that a web rebinding drops, and the delegates footer item living outside the Footer layout.Verification
native/:gofmt -l .,go vet ./...,go test ./...(new tests for the tree, the model routing, drop zones,SortCarry, delegates).