Restore hotkeys in pane_grid example
- Implement `subscription::events_with` - Remove `pane_grid::KeyPressEvent` - Return closest sibling in `pane_grid::State::close`
This commit is contained in:
parent
c53022e8df
commit
d6d5cf0294
9 changed files with 88 additions and 45 deletions
|
|
@ -29,8 +29,8 @@ pub use state::{Focus, State};
|
|||
pub use title_bar::TitleBar;
|
||||
|
||||
use crate::{
|
||||
container, keyboard, layout, mouse, overlay, row, text, Clipboard, Element,
|
||||
Event, Hasher, Layout, Length, Point, Rectangle, Size, Vector, Widget,
|
||||
container, layout, mouse, overlay, row, text, Clipboard, Element, Event,
|
||||
Hasher, Layout, Length, Point, Rectangle, Size, Vector, Widget,
|
||||
};
|
||||
|
||||
/// A collection of panes distributed using either vertical or horizontal splits
|
||||
|
|
@ -336,18 +336,6 @@ pub struct ResizeEvent {
|
|||
pub ratio: f32,
|
||||
}
|
||||
|
||||
/// An event produced during a key press interaction of a [`PaneGrid`].
|
||||
///
|
||||
/// [`PaneGrid`]: struct.PaneGrid.html
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub struct KeyPressEvent {
|
||||
/// The key that was pressed.
|
||||
pub key_code: keyboard::KeyCode,
|
||||
|
||||
/// The state of the modifier keys when the key was pressed.
|
||||
pub modifiers: keyboard::ModifiersState,
|
||||
}
|
||||
|
||||
impl<'a, Message, Renderer> Widget<Message, Renderer>
|
||||
for PaneGrid<'a, Message, Renderer>
|
||||
where
|
||||
|
|
|
|||
|
|
@ -227,12 +227,13 @@ impl<T> State<T> {
|
|||
let _ = self.internal.layout.resize(split, ratio);
|
||||
}
|
||||
|
||||
/// Closes the given [`Pane`] and returns its internal state, if it exists.
|
||||
/// Closes the given [`Pane`] and returns its internal state and its closest
|
||||
/// sibling, if it exists.
|
||||
///
|
||||
/// [`Pane`]: struct.Pane.html
|
||||
pub fn close(&mut self, pane: &Pane) -> Option<T> {
|
||||
if let Some(_) = self.internal.layout.remove(pane) {
|
||||
self.panes.remove(pane)
|
||||
pub fn close(&mut self, pane: &Pane) -> Option<(T, Pane)> {
|
||||
if let Some(sibling) = self.internal.layout.remove(pane) {
|
||||
self.panes.remove(pane).map(|state| (state, sibling))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue