diff options
| author | 2020-11-10 02:32:57 +0100 | |
|---|---|---|
| committer | 2020-11-10 02:32:57 +0100 | |
| commit | d6d5cf0294b1231f4909a782e90b491cc6838fae (patch) | |
| tree | 41e746cb2559df2e2c8c94715cd6bd1c9c10617e /native/src/widget | |
| parent | c53022e8dff6fc6286b60bc897232fe4cb6e6202 (diff) | |
| download | iced-d6d5cf0294b1231f4909a782e90b491cc6838fae.tar.gz iced-d6d5cf0294b1231f4909a782e90b491cc6838fae.tar.bz2 iced-d6d5cf0294b1231f4909a782e90b491cc6838fae.zip  | |
Restore hotkeys in `pane_grid` example
- Implement `subscription::events_with`
- Remove `pane_grid::KeyPressEvent`
- Return closest sibling in `pane_grid::State::close`
Diffstat (limited to '')
| -rw-r--r-- | native/src/widget/pane_grid.rs | 16 | ||||
| -rw-r--r-- | native/src/widget/pane_grid/state.rs | 9 | 
2 files changed, 7 insertions, 18 deletions
diff --git a/native/src/widget/pane_grid.rs b/native/src/widget/pane_grid.rs index 584b2ba4..7d9659e9 100644 --- a/native/src/widget/pane_grid.rs +++ b/native/src/widget/pane_grid.rs @@ -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 diff --git a/native/src/widget/pane_grid/state.rs b/native/src/widget/pane_grid/state.rs index e2793641..be36b070 100644 --- a/native/src/widget/pane_grid/state.rs +++ b/native/src/widget/pane_grid/state.rs @@ -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          }  | 
