Merge pull request #971 from tarkah/fix/pane-dragging-overlay

fix: allow titlebar overlays to close when dragging pane
This commit is contained in:
Héctor Ramón 2021-07-28 15:47:13 +07:00 committed by GitHub
commit a08e4ebccb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 26 deletions

View file

@ -452,24 +452,25 @@ where
_ => {} _ => {}
} }
if self.state.picked_pane().is_none() { let picked_pane = self.state.picked_pane().map(|(pane, _)| pane);
self.elements self.elements
.iter_mut() .iter_mut()
.zip(layout.children()) .zip(layout.children())
.map(|((_, pane), layout)| { .map(|((pane, content), layout)| {
pane.on_event( let is_picked = picked_pane == Some(*pane);
content.on_event(
event.clone(), event.clone(),
layout, layout,
cursor_position, cursor_position,
renderer, renderer,
clipboard, clipboard,
messages, messages,
is_picked,
) )
}) })
.fold(event_status, event::Status::merge) .fold(event_status, event::Status::merge)
} else {
event::Status::Captured
}
} }
fn draw( fn draw(

View file

@ -149,6 +149,7 @@ where
renderer: &Renderer, renderer: &Renderer,
clipboard: &mut dyn Clipboard, clipboard: &mut dyn Clipboard,
messages: &mut Vec<Message>, messages: &mut Vec<Message>,
is_picked: bool,
) -> event::Status { ) -> event::Status {
let mut event_status = event::Status::Ignored; let mut event_status = event::Status::Ignored;
@ -169,14 +170,18 @@ where
layout layout
}; };
let body_status = self.body.on_event( let body_status = if is_picked {
event::Status::Ignored
} else {
self.body.on_event(
event, event,
body_layout, body_layout,
cursor_position, cursor_position,
renderer, renderer,
clipboard, clipboard,
messages, messages,
); )
};
event_status.merge(body_status) event_status.merge(body_status)
} }