Skip to content

Release 0.19#316

Merged
anhosh merged 8 commits intomainfrom
release-0.19
Mar 29, 2026
Merged

Release 0.19#316
anhosh merged 8 commits intomainfrom
release-0.19

Conversation

@anhosh
Copy link
Copy Markdown
Owner

@anhosh anhosh commented Mar 29, 2026

egui_dock 0.19.0 - 2026/03/29

Added

  • NodePath and TabPath structs, useful for more consistent and terse indexing of nodes and
    tabs. (#312)
  • Indexing LeafNode with TabIndex. (#311)
  • Indexing DockState using NodePath. (#312)
  • New methods (#312):
    • DockState::node(_mut): returns a Node at a given NodePath,
    • DockState::leaf(_mut): returns a LeafNode at a given NodePath,
    • DockState::iter_surfaces(_mut)_indexed: returns a Surface iterator paired with its SurfaceIndex,
    • Surface::iter_nodes(_mut)_indexed: returns a Node<Tab> iterator paired with its NodeIndex,
    • Tree::leaf(_mut): returns a Result<&LeafNode<Tab>> at a given NodeIndex,
    • Node::iter_tabs(_mut)_indexed: returns a Tab iterator paried with its TabIndex.

Fixed

  • No more panics when a window is shrunk to zero available space. (#309)
  • No more panics while trying move a tab to the end of the list within the same leaf. (#308)

Breaking changes

  • Upgraded to egui 0.34. (#314)
  • Replaced all SurfaceIndex, NodeIndex, and TabIndex groupings with NodePath and TabPath in the argument lists
    of 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.
  • Changed the return type of some methods (#312):
    • DockState::iter_all_nodes now returns impl Iterator<Item = (NodePath, &Node<Tab>)>,
    • DockState::iter_all_nodes_mut now returns impl Iterator<Item = (NodePath, &mut Node<Tab>)>,
    • DockState::iter_all_tabs now returns impl Iterator<Item = (TabPath, &Tab)>,
    • DockState::iter_all_tabs_mut now returns impl Iterator<Item = (TabPath, &mut Tab)>,
    • DockState::iter_leaves now returns impl Iterator<Item = (NodePath, &LeafNode<Tab>)>,
    • DockState::iter_leaves_mut now returns impl Iterator<Item = (NodePath, &mut LeafNode<Tab>)>,
    • DockState::find_tab_from now returns Option<TabPath>,
    • DockState::find_tab now returns Option<TabPath>,
    • Surface::iter_all_tabs now returns impl Iterator<Item = ((NodeIndex, TabIndex), &Tab)>,
    • Surface::iter_all_tabs_mut now returns impl Iterator<Item = ((NodeIndex, TabIndex), &mut Tab)>,
    • Tree::set_active_tab now returns Result<()> (Err if any of the indices are invalid),
    • LeafNode::::set_active_tab now returns Result<()> (Err if the tab index is invalid).
  • impl From<(SurfaceIndex, NodeIndex, TabInsert)> for TabDestination was replaced with
    impl From<(NodePath, TabInsert)> for TabDestination. (#312)

Deprecated

  • DockArea::show - use DockArea::show_inside instead. (#314)

SOF3 and others added 8 commits March 22, 2026 20:51
* 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>
@anhosh anhosh merged commit 4766dd6 into main Mar 29, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants