Merge pull request #1480 from tarkah/more-pane-grid-fixes
More pane grid fixes
This commit is contained in:
commit
82217947aa
2 changed files with 29 additions and 20 deletions
|
|
@ -341,6 +341,7 @@ where
|
||||||
cursor_position,
|
cursor_position,
|
||||||
viewport,
|
viewport,
|
||||||
renderer,
|
renderer,
|
||||||
|
self.on_drag.is_some(),
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
.max()
|
.max()
|
||||||
|
|
@ -648,7 +649,7 @@ pub fn mouse_interaction(
|
||||||
resize_leeway: Option<u16>,
|
resize_leeway: Option<u16>,
|
||||||
) -> Option<mouse::Interaction> {
|
) -> Option<mouse::Interaction> {
|
||||||
if action.picked_pane().is_some() {
|
if action.picked_pane().is_some() {
|
||||||
return Some(mouse::Interaction::Grab);
|
return Some(mouse::Interaction::Grabbing);
|
||||||
}
|
}
|
||||||
|
|
||||||
let resize_axis =
|
let resize_axis =
|
||||||
|
|
@ -756,27 +757,12 @@ pub fn draw<Renderer, T>(
|
||||||
cursor_position
|
cursor_position
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let mut render_picked_pane = None;
|
||||||
|
|
||||||
for ((id, pane), layout) in elements.zip(layout.children()) {
|
for ((id, pane), layout) in elements.zip(layout.children()) {
|
||||||
match picked_pane {
|
match picked_pane {
|
||||||
Some((dragging, origin)) if id == dragging => {
|
Some((dragging, origin)) if id == dragging => {
|
||||||
let bounds = layout.bounds();
|
render_picked_pane = Some((pane, origin, layout));
|
||||||
|
|
||||||
renderer.with_translation(
|
|
||||||
cursor_position
|
|
||||||
- Point::new(bounds.x + origin.x, bounds.y + origin.y),
|
|
||||||
|renderer| {
|
|
||||||
renderer.with_layer(bounds, |renderer| {
|
|
||||||
draw_pane(
|
|
||||||
pane,
|
|
||||||
renderer,
|
|
||||||
default_style,
|
|
||||||
layout,
|
|
||||||
pane_cursor_position,
|
|
||||||
viewport,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
draw_pane(
|
draw_pane(
|
||||||
|
|
@ -791,6 +777,28 @@ pub fn draw<Renderer, T>(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Render picked pane last
|
||||||
|
if let Some((pane, origin, layout)) = render_picked_pane {
|
||||||
|
let bounds = layout.bounds();
|
||||||
|
|
||||||
|
renderer.with_translation(
|
||||||
|
cursor_position
|
||||||
|
- Point::new(bounds.x + origin.x, bounds.y + origin.y),
|
||||||
|
|renderer| {
|
||||||
|
renderer.with_layer(bounds, |renderer| {
|
||||||
|
draw_pane(
|
||||||
|
pane,
|
||||||
|
renderer,
|
||||||
|
default_style,
|
||||||
|
layout,
|
||||||
|
pane_cursor_position,
|
||||||
|
viewport,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
if let Some((axis, split_region, is_picked)) = picked_split {
|
if let Some((axis, split_region, is_picked)) = picked_split {
|
||||||
let highlight = if is_picked {
|
let highlight = if is_picked {
|
||||||
theme.picked_split(style)
|
theme.picked_split(style)
|
||||||
|
|
|
||||||
|
|
@ -238,6 +238,7 @@ where
|
||||||
cursor_position: Point,
|
cursor_position: Point,
|
||||||
viewport: &Rectangle,
|
viewport: &Rectangle,
|
||||||
renderer: &Renderer,
|
renderer: &Renderer,
|
||||||
|
drag_enabled: bool,
|
||||||
) -> mouse::Interaction {
|
) -> mouse::Interaction {
|
||||||
let (body_layout, title_bar_interaction) =
|
let (body_layout, title_bar_interaction) =
|
||||||
if let Some(title_bar) = &self.title_bar {
|
if let Some(title_bar) = &self.title_bar {
|
||||||
|
|
@ -247,7 +248,7 @@ where
|
||||||
let is_over_pick_area = title_bar
|
let is_over_pick_area = title_bar
|
||||||
.is_over_pick_area(title_bar_layout, cursor_position);
|
.is_over_pick_area(title_bar_layout, cursor_position);
|
||||||
|
|
||||||
if is_over_pick_area {
|
if is_over_pick_area && drag_enabled {
|
||||||
return mouse::Interaction::Grab;
|
return mouse::Interaction::Grab;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue