diff options
author | 2021-10-25 16:16:35 +0700 | |
---|---|---|
committer | 2021-10-25 16:35:02 +0700 | |
commit | 4a11cbd99445338619dfaf1f327dbc25b2983cb7 (patch) | |
tree | 254598ff97f17cb33e44bd1402323d3b6892cb6b /native/src/widget/scrollable.rs | |
parent | 41394b4e90a81a43c796c070e706e6aa4d8652bc (diff) | |
download | iced-4a11cbd99445338619dfaf1f327dbc25b2983cb7.tar.gz iced-4a11cbd99445338619dfaf1f327dbc25b2983cb7.tar.bz2 iced-4a11cbd99445338619dfaf1f327dbc25b2983cb7.zip |
Implement `Widget::mouse_interaction` for `PaneGrid`
... and fix rendering of drag interaction in `PaneGrid` by
introducing an explicit `with_translation` method to `Renderer`
and simplifying the `with_layer` and `Clip` primitive.
Diffstat (limited to 'native/src/widget/scrollable.rs')
-rw-r--r-- | native/src/widget/scrollable.rs | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/native/src/widget/scrollable.rs b/native/src/widget/scrollable.rs index 76badbde..563ea370 100644 --- a/native/src/widget/scrollable.rs +++ b/native/src/widget/scrollable.rs @@ -485,15 +485,20 @@ where }; if let Some(scrollbar) = scrollbar { - renderer.with_layer(bounds, Vector::new(0, offset), |renderer| { - self.content.draw( - renderer, - style, - content_layout, - cursor_position, - &Rectangle { - y: bounds.y + offset as f32, - ..bounds + renderer.with_layer(bounds, |renderer| { + renderer.with_translation( + Vector::new(0.0, -(offset as f32)), + |renderer| { + self.content.draw( + renderer, + style, + content_layout, + cursor_position, + &Rectangle { + y: bounds.y + offset as f32, + ..bounds + }, + ); }, ); }); @@ -509,7 +514,7 @@ where let is_scrollbar_visible = style.background.is_some() || style.border_width > 0.0; - renderer.with_layer(bounds, Vector::new(0, 0), |renderer| { + renderer.with_layer(bounds, |renderer| { if is_scrollbar_visible { renderer.fill_rectangle(renderer::Quad { bounds: scrollbar.bounds, |