Repository navigation
feat(panes): Tab per Ziehen als Pane in den sichtbaren Tab einfügen - #523
Merged
Merged
Conversation
Ein Tab lässt sich aus der Tab-Leiste in den Inhaltsbereich ziehen. Über einem Pane des sichtbaren Tabs markiert eine Fläche aus Theme-Akzent die Hälfte, an der er eingefügt wird (gleiche Richtungslogik wie beim Pane-Kopfzeilen-Drag). Loslassen überführt alle sichtbaren Panes des gezogenen Tabs samt Anordnung als Split; Sessions, PTYs und Agenten laufen weiter, der leere Quelltab schließt sich. Ohne Drop-Fläche wird höchstens umsortiert. Damit der sichtbare Tab beim Ziehen eines anderen stehen bleibt, aktiviert die horizontale Tab-Leiste Tabs beim Loslassen statt beim Drücken (wie die vertikalen Tabs). Tabs mit verborgenen laufenden Panes (Hintergrundjob, Child-Agent) oder laufendem provisorischem Daemon-Start werden nicht eingefügt. Fenster-Abriss (DragTabsToWindows) bleibt unverändert.
Das vertikale Tab-Panel sperrt den Tab-Drag ohne DragTabsToWindows nicht mehr auf die senkrechte Achse, sondern begrenzt ihn auf das Fenster. Über dem Inhalt greift damit dieselbe Drop-Fläche und dasselbe Einfügen als Split wie bei der horizontalen Tab-Leiste; im Panel wird weiter umsortiert. Gezogen wird wie bisher der ganze Tab mit allen Panes.
iret77
changed the base branch from
feat/unified-launch-menu-tab-to-pane
to
main
October 8, 2026 14:18
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.
Baut auf
feat/unified-launch-menu-tab-to-paneauf; bitte nach diesem PR mergen.Was
Ein Tab lässt sich mit der Maus als Pane in den sichtbaren Tab ziehen. Vorbild sind VS Code und JetBrains: Man zieht einen Tab in den Editorbereich, und eine Drop-Fläche zeigt die Zielposition.
calculate_pane_move_direction).Umsetzung
tab.rs: Die horizontalen Tabs aktivieren beion_clickstatton_mouse_down, wie die vertikalen Tabs. OhneDragTabsToWindowsist der Tab-Drag nicht mehr auf die horizontale Achse gesperrt, sondern auf das Fenster begrenzt.vertical_tabs.rs: Ebenso wird die senkrechte Sperre durch die Fenstergrenze ersetzt. Gezogen wird dort der ganze Tab mit allen Panes, auch wenn das Panel jedes Pane als eigene Zeile zeigt.tree.rs:PaneLayoutbeschreibt die sichtbaren Panes; dazu kommthas_hidden_panes_in_use.pane_group:take_panes_for_joinundinsert_joined_panes. Die Anordnung entsteht neu aus Splits: erst die Geschwister nebeneinander, dann jedes Kind. Reihenfolge und Verschachtelung bleiben erhalten, die Größen starten gleich verteilt. Dateimanager-Overlays wandern überPaneMoveBundlemit. Ein Pane, das nicht neben seinem Nachbarn platziert werden kann, landet am Tabrand und geht nicht verloren.workspace:tab_join_drop_target_at,join_tab_as_paneund das Overlay. Gesperrt sind Tabs mit verborgenen laufenden Panes (Hintergrundjob, Child-Agent, laufender Move) und Tabs mit laufendem provisorischem Daemon- oder Managed-Start, wie beim Fenster-Drag.Bekannter Kompromiss
Ein Drücken, bei dem sich die Maus mehr als 5 px bewegt, gilt als Drag (Schwelle des
Draggable) und aktiviert den Tab beim Loslassen nicht. Bei den vertikalen Tabs ist das schon heute so. Das ist also konsistent und keine Regression.Verifikation
rustfmt --check,git diff --check,check-no-new-cjk,check-persistent-hover-state,check-v1-release-readiness --phase-a.ci-batcherst nach Freigabe.visible_layout_mirrors_nesting_and_skips_hidden_panes,only_running_or_moving_hidden_panes_block_handing_over_a_groupunddragging_a_tab_onto_a_pane_joins_its_panes_as_a_split(gleiche PaneIds in Originalreihenfolge, Fokus übernommen, Quelltab geschlossen, sichtbarer Tab ist nie sein eigenes Ziel).Nicht enthalten
DragTabsToWindowsbleibt aus.