summaryrefslogtreecommitdiffstats
path: root/widget/src/pane_grid
diff options
context:
space:
mode:
authorLibravatar Joao Freitas <51237625+jhff@users.noreply.github.com>2023-05-19 12:12:08 +0100
committerLibravatar Joao Freitas <51237625+jhff@users.noreply.github.com>2023-05-19 12:12:08 +0100
commitbc590e2d6f3a39b09b11928c829f05d7bc9f9211 (patch)
tree06e2d2e469d7028859a7269889ea1a18ea4b369c /widget/src/pane_grid
parent0cb84c1c4cc128f8260054192b4f7798de52a82a (diff)
downloadiced-bc590e2d6f3a39b09b11928c829f05d7bc9f9211.tar.gz
iced-bc590e2d6f3a39b09b11928c829f05d7bc9f9211.tar.bz2
iced-bc590e2d6f3a39b09b11928c829f05d7bc9f9211.zip
Take pane state internally
Diffstat (limited to 'widget/src/pane_grid')
-rw-r--r--widget/src/pane_grid/state.rs26
1 files changed, 8 insertions, 18 deletions
diff --git a/widget/src/pane_grid/state.rs b/widget/src/pane_grid/state.rs
index b57cdd92..6ab34884 100644
--- a/widget/src/pane_grid/state.rs
+++ b/widget/src/pane_grid/state.rs
@@ -170,17 +170,9 @@ impl<T> State<T> {
/// Split a target [`Pane`] with a given [`Pane`] on a given [`Region`].
///
/// Panes will be swapped by default for [`Region::Center`].
- pub fn split_with(
- &mut self,
- target: &Pane,
- pane: (T, &Pane),
- region: Region,
- ) {
+ pub fn split_with(&mut self, target: &Pane, pane: &Pane, region: Region) {
match region {
- Region::Center => {
- let (_, pane) = pane;
- self.swap(pane, target);
- }
+ Region::Center => self.swap(pane, target),
Region::Top => {
self.split_and_swap(Axis::Horizontal, target, pane, true)
}
@@ -200,17 +192,15 @@ impl<T> State<T> {
&mut self,
axis: Axis,
target: &Pane,
- pane: (T, &Pane),
+ pane: &Pane,
invert: bool,
) {
- let (state, pane) = pane;
-
- if let Some((new_pane, _)) = self.split(axis, target, state) {
- if invert {
- self.swap(target, &new_pane);
+ if let Some((state, _)) = self.close(pane) {
+ if let Some((new_pane, _)) = self.split(axis, target, state) {
+ if invert {
+ self.swap(target, &new_pane);
+ }
}
-
- let _ = self.close(pane);
}
}