Take pane state internally
This commit is contained in:
parent
0cb84c1c4c
commit
bc590e2d6f
2 changed files with 9 additions and 22 deletions
|
|
@ -110,10 +110,7 @@ impl Application for Example {
|
||||||
target,
|
target,
|
||||||
region,
|
region,
|
||||||
}) => {
|
}) => {
|
||||||
if let Some(state) = self.panes.get(&pane) {
|
self.panes.split_with(&target, &pane, region);
|
||||||
let pane = (*state, &pane);
|
|
||||||
self.panes.split_with(&target, pane, region);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Message::Dragged(_) => {}
|
Message::Dragged(_) => {}
|
||||||
Message::TogglePin(pane) => {
|
Message::TogglePin(pane) => {
|
||||||
|
|
|
||||||
|
|
@ -170,17 +170,9 @@ impl<T> State<T> {
|
||||||
/// Split a target [`Pane`] with a given [`Pane`] on a given [`Region`].
|
/// Split a target [`Pane`] with a given [`Pane`] on a given [`Region`].
|
||||||
///
|
///
|
||||||
/// Panes will be swapped by default for [`Region::Center`].
|
/// Panes will be swapped by default for [`Region::Center`].
|
||||||
pub fn split_with(
|
pub fn split_with(&mut self, target: &Pane, pane: &Pane, region: Region) {
|
||||||
&mut self,
|
|
||||||
target: &Pane,
|
|
||||||
pane: (T, &Pane),
|
|
||||||
region: Region,
|
|
||||||
) {
|
|
||||||
match region {
|
match region {
|
||||||
Region::Center => {
|
Region::Center => self.swap(pane, target),
|
||||||
let (_, pane) = pane;
|
|
||||||
self.swap(pane, target);
|
|
||||||
}
|
|
||||||
Region::Top => {
|
Region::Top => {
|
||||||
self.split_and_swap(Axis::Horizontal, target, pane, true)
|
self.split_and_swap(Axis::Horizontal, target, pane, true)
|
||||||
}
|
}
|
||||||
|
|
@ -200,17 +192,15 @@ impl<T> State<T> {
|
||||||
&mut self,
|
&mut self,
|
||||||
axis: Axis,
|
axis: Axis,
|
||||||
target: &Pane,
|
target: &Pane,
|
||||||
pane: (T, &Pane),
|
pane: &Pane,
|
||||||
invert: bool,
|
invert: bool,
|
||||||
) {
|
) {
|
||||||
let (state, pane) = pane;
|
if let Some((state, _)) = self.close(pane) {
|
||||||
|
if let Some((new_pane, _)) = self.split(axis, target, state) {
|
||||||
if let Some((new_pane, _)) = self.split(axis, target, state) {
|
if invert {
|
||||||
if invert {
|
self.swap(target, &new_pane);
|
||||||
self.swap(target, &new_pane);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let _ = self.close(pane);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue