summaryrefslogtreecommitdiffstats
path: root/graphics/src/widget/pane_grid.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2021-03-10 03:28:04 +0100
committerLibravatar GitHub <noreply@github.com>2021-03-10 03:28:04 +0100
commit939fcfe9dbe8c08a286c6328da6053b5fd577adf (patch)
treec5b0e907d74fb759d6a4609b51bf9e4ce6b9bccf /graphics/src/widget/pane_grid.rs
parentbbca5c4bde6f9e6e54cca6cb216d38dfd3864e74 (diff)
parentc51b771519c5da5a4d5cd39eaadfe763c1e60978 (diff)
downloadiced-939fcfe9dbe8c08a286c6328da6053b5fd577adf.tar.gz
iced-939fcfe9dbe8c08a286c6328da6053b5fd577adf.tar.bz2
iced-939fcfe9dbe8c08a286c6328da6053b5fd577adf.zip
Merge pull request #771 from hecrj/fix/tooltip-layering
Reposition `Tooltip` inside `viewport` bounds
Diffstat (limited to 'graphics/src/widget/pane_grid.rs')
-rw-r--r--graphics/src/widget/pane_grid.rs19
1 files changed, 14 insertions, 5 deletions
diff --git a/graphics/src/widget/pane_grid.rs b/graphics/src/widget/pane_grid.rs
index 3cd4fd34..d06f8c6c 100644
--- a/graphics/src/widget/pane_grid.rs
+++ b/graphics/src/widget/pane_grid.rs
@@ -45,6 +45,7 @@ where
layout: Layout<'_>,
style_sheet: &<Self as pane_grid::Renderer>::Style,
cursor_position: Point,
+ viewport: &Rectangle,
) -> Self::Output {
let pane_cursor_position = if dragging.is_some() {
// TODO: Remove once cursor availability is encoded in the type
@@ -62,8 +63,13 @@ where
.zip(layout.children())
.enumerate()
.map(|(i, ((id, pane), layout))| {
- let (primitive, new_mouse_interaction) =
- pane.draw(self, defaults, layout, pane_cursor_position);
+ let (primitive, new_mouse_interaction) = pane.draw(
+ self,
+ defaults,
+ layout,
+ pane_cursor_position,
+ viewport,
+ );
if new_mouse_interaction > mouse_interaction {
mouse_interaction = new_mouse_interaction;
@@ -180,12 +186,13 @@ where
title_bar: Option<(&TitleBar<'_, Message, Self>, Layout<'_>)>,
body: (&Element<'_, Message, Self>, Layout<'_>),
cursor_position: Point,
+ viewport: &Rectangle,
) -> Self::Output {
let style = style_sheet.style();
let (body, body_layout) = body;
let (body_primitive, body_interaction) =
- body.draw(self, defaults, body_layout, cursor_position, &bounds);
+ body.draw(self, defaults, body_layout, cursor_position, viewport);
let background = crate::widget::container::background(bounds, &style);
@@ -199,6 +206,7 @@ where
defaults,
title_bar_layout,
cursor_position,
+ viewport,
show_controls,
);
@@ -240,6 +248,7 @@ where
content: (&Element<'_, Message, Self>, Layout<'_>),
controls: Option<(&Element<'_, Message, Self>, Layout<'_>)>,
cursor_position: Point,
+ viewport: &Rectangle,
) -> Self::Output {
let style = style_sheet.style();
let (title_content, title_layout) = content;
@@ -257,7 +266,7 @@ where
&defaults,
title_layout,
cursor_position,
- &bounds,
+ viewport,
);
if let Some((controls, controls_layout)) = controls {
@@ -266,7 +275,7 @@ where
&defaults,
controls_layout,
cursor_position,
- &bounds,
+ viewport,
);
(