From 3f968b8c876b7c2351232856887fb9c3e3db3130 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 12 Nov 2020 00:09:52 +0100 Subject: Make `Widget::on_event` return an `event::Status` --- native/src/widget/slider.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'native/src/widget/slider.rs') diff --git a/native/src/widget/slider.rs b/native/src/widget/slider.rs index d6e366aa..51edd56d 100644 --- a/native/src/widget/slider.rs +++ b/native/src/widget/slider.rs @@ -4,9 +4,11 @@ //! //! [`Slider`]: struct.Slider.html //! [`State`]: struct.State.html +use crate::event::{self, Event}; +use crate::layout; +use crate::mouse; use crate::{ - layout, mouse, Clipboard, Element, Event, Hasher, Layout, Length, Point, - Rectangle, Size, Widget, + Clipboard, Element, Hasher, Layout, Length, Point, Rectangle, Size, Widget, }; use std::{hash::Hash, ops::RangeInclusive}; @@ -202,7 +204,7 @@ where messages: &mut Vec, _renderer: &Renderer, _clipboard: Option<&dyn Clipboard>, - ) { + ) -> event::Status { let mut change = || { let bounds = layout.bounds(); if cursor_position.x <= bounds.x { @@ -251,6 +253,8 @@ where }, _ => {} } + + event::Status::Ignored } fn draw( -- cgit From c361fe48c7a92662046dd13cb08cb2157e0577be Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 12 Nov 2020 00:56:50 +0100 Subject: Implement event capturing for `Slider` --- native/src/widget/slider.rs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'native/src/widget/slider.rs') diff --git a/native/src/widget/slider.rs b/native/src/widget/slider.rs index 51edd56d..4e38fb86 100644 --- a/native/src/widget/slider.rs +++ b/native/src/widget/slider.rs @@ -234,6 +234,8 @@ where if layout.bounds().contains(cursor_position) { change(); self.state.is_dragging = true; + + return event::Status::Captured; } } mouse::Event::ButtonReleased(mouse::Button::Left) => { @@ -242,11 +244,15 @@ where messages.push(on_release); } self.state.is_dragging = false; + + return event::Status::Captured; } } mouse::Event::CursorMoved { .. } => { if self.state.is_dragging { change(); + + return event::Status::Captured; } } _ => {} -- cgit