Skip to content

Commit a08e4eb

Browse files
authored
Merge pull request #971 from tarkah/fix/pane-dragging-overlay
fix: allow titlebar overlays to close when dragging pane
2 parents 2586210 + 6618c6b commit a08e4eb

File tree

2 files changed

+32
-26
lines changed

2 files changed

+32
-26
lines changed

native/src/widget/pane_grid.rs

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -452,24 +452,25 @@ where
452452
_ => {}
453453
}
454454

455-
if self.state.picked_pane().is_none() {
456-
self.elements
457-
.iter_mut()
458-
.zip(layout.children())
459-
.map(|((_, pane), layout)| {
460-
pane.on_event(
461-
event.clone(),
462-
layout,
463-
cursor_position,
464-
renderer,
465-
clipboard,
466-
messages,
467-
)
468-
})
469-
.fold(event_status, event::Status::merge)
470-
} else {
471-
event::Status::Captured
472-
}
455+
let picked_pane = self.state.picked_pane().map(|(pane, _)| pane);
456+
457+
self.elements
458+
.iter_mut()
459+
.zip(layout.children())
460+
.map(|((pane, content), layout)| {
461+
let is_picked = picked_pane == Some(*pane);
462+
463+
content.on_event(
464+
event.clone(),
465+
layout,
466+
cursor_position,
467+
renderer,
468+
clipboard,
469+
messages,
470+
is_picked,
471+
)
472+
})
473+
.fold(event_status, event::Status::merge)
473474
}
474475

475476
fn draw(

native/src/widget/pane_grid/content.rs

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ where
149149
renderer: &Renderer,
150150
clipboard: &mut dyn Clipboard,
151151
messages: &mut Vec<Message>,
152+
is_picked: bool,
152153
) -> event::Status {
153154
let mut event_status = event::Status::Ignored;
154155

@@ -169,14 +170,18 @@ where
169170
layout
170171
};
171172

172-
let body_status = self.body.on_event(
173-
event,
174-
body_layout,
175-
cursor_position,
176-
renderer,
177-
clipboard,
178-
messages,
179-
);
173+
let body_status = if is_picked {
174+
event::Status::Ignored
175+
} else {
176+
self.body.on_event(
177+
event,
178+
body_layout,
179+
cursor_position,
180+
renderer,
181+
clipboard,
182+
messages,
183+
)
184+
};
180185

181186
event_status.merge(body_status)
182187
}

0 commit comments

Comments
 (0)