diff options
author | 2023-05-16 16:12:29 +0100 | |
---|---|---|
committer | 2023-05-16 16:12:29 +0100 | |
commit | 99aa54cd88d7eb99149699d539ee4d59e08047b1 (patch) | |
tree | acf92d0abab84919f0dc660aa234c824a2f96632 /examples/pane_grid | |
parent | 8e8b1e1eacc4e2c19c9878625f423c8e09e2d3b9 (diff) | |
download | iced-99aa54cd88d7eb99149699d539ee4d59e08047b1.tar.gz iced-99aa54cd88d7eb99149699d539ee4d59e08047b1.tar.bz2 iced-99aa54cd88d7eb99149699d539ee4d59e08047b1.zip |
Add pane_grid functionality to split a pane with another pane
Diffstat (limited to 'examples/pane_grid')
-rw-r--r-- | examples/pane_grid/src/main.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/examples/pane_grid/src/main.rs b/examples/pane_grid/src/main.rs index dfb80853..d670e1e8 100644 --- a/examples/pane_grid/src/main.rs +++ b/examples/pane_grid/src/main.rs @@ -108,8 +108,12 @@ impl Application for Example { Message::Dragged(pane_grid::DragEvent::Dropped { pane, target, + region, }) => { - self.panes.swap(&pane, &target); + if let Some(state) = self.panes.get(&pane) { + let pane = (*state, &pane); + self.panes.split_with(&target, pane, region); + } } Message::Dragged(_) => {} Message::TogglePin(pane) => { @@ -255,6 +259,7 @@ fn handle_hotkey(key_code: keyboard::KeyCode) -> Option<Message> { } } +#[derive(Clone, Copy)] struct Pane { id: usize, pub is_pinned: bool, |