Merged
Conversation
* fix: clamp tab index in move_tab to prevent out-of-bounds insert When reordering a tab within the same node, `remove_tab` is called before `insert_tab`. This reduces the tab count by one, so the original destination index may now be out of bounds. Clamp the insertion index to the current tab count to prevent panic. * Simplify the clamping --------- Co-authored-by: Adanos020 <adanos020@gmail.com>
* Refactor index tuples to structs * add convenience functions on NodePath and TabPat * reorganize imports * refactor some fallible methods to return an Error --------- Co-authored-by: Adam Gąsior <adanos020@gmail.com>
* Update egui/eframe to 0.34 - Bump egui from 0.33 to 0.34 - Bump eframe from 0.33 to 0.34 - Deprecate DockArea::show(ctx) in favor of show_inside(ui) - Migrate all examples to eframe's new App::ui(&mut Ui) API - Replace deprecated ctx.style() with ctx.global_style() - Fix deprecated warnings in doc-tests Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: cargo fmt Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.
egui_dock 0.19.0 - 2026/03/29
Added
NodePathandTabPathstructs, useful for more consistent and terse indexing of nodes andtabs. (#312)
LeafNodewithTabIndex. (#311)DockStateusingNodePath. (#312)DockState::node(_mut): returns aNodeat a givenNodePath,DockState::leaf(_mut): returns aLeafNodeat a givenNodePath,DockState::iter_surfaces(_mut)_indexed: returns aSurfaceiterator paired with itsSurfaceIndex,Surface::iter_nodes(_mut)_indexed: returns aNode<Tab>iterator paired with itsNodeIndex,Tree::leaf(_mut): returns aResult<&LeafNode<Tab>>at a givenNodeIndex,Node::iter_tabs(_mut)_indexed: returns aTabiterator paried with itsTabIndex.Fixed
Breaking changes
SurfaceIndex,NodeIndex, andTabIndexgroupings withNodePathandTabPathin the argument listsof the following functions (#312):
DockState::set_active_tab,DockState::set_focused_node_and_surface,DockState::move_tab,DockState::detach_tab,DockState::remove_tab,DockState::remove_leaf,DockState::split,DockState::focused_leaf,TabViewer::context_menu,TabViewer::on_add,TabViewer::add_popup.DockState::iter_all_nodesnow returnsimpl Iterator<Item = (NodePath, &Node<Tab>)>,DockState::iter_all_nodes_mutnow returnsimpl Iterator<Item = (NodePath, &mut Node<Tab>)>,DockState::iter_all_tabsnow returnsimpl Iterator<Item = (TabPath, &Tab)>,DockState::iter_all_tabs_mutnow returnsimpl Iterator<Item = (TabPath, &mut Tab)>,DockState::iter_leavesnow returnsimpl Iterator<Item = (NodePath, &LeafNode<Tab>)>,DockState::iter_leaves_mutnow returnsimpl Iterator<Item = (NodePath, &mut LeafNode<Tab>)>,DockState::find_tab_fromnow returnsOption<TabPath>,DockState::find_tabnow returnsOption<TabPath>,Surface::iter_all_tabsnow returnsimpl Iterator<Item = ((NodeIndex, TabIndex), &Tab)>,Surface::iter_all_tabs_mutnow returnsimpl Iterator<Item = ((NodeIndex, TabIndex), &mut Tab)>,Tree::set_active_tabnow returnsResult<()>(Errif any of the indices are invalid),LeafNode::::set_active_tabnow returnsResult<()>(Errif the tab index is invalid).impl From<(SurfaceIndex, NodeIndex, TabInsert)> for TabDestinationwas replaced withimpl From<(NodePath, TabInsert)> for TabDestination. (#312)Deprecated
DockArea::show- useDockArea::show_insideinstead. (#314)