1
0
Fork 0

Compensate for borders in iced ParamSlider

This commit is contained in:
Robbert van der Helm 2022-03-19 02:19:53 +01:00
parent 2e18ae0ebc
commit 47fe8c35f7

View file

@ -235,8 +235,6 @@ impl<'a, P: Param> Widget<ParamMessage, Renderer> for ParamSlider<'a, P> {
clipboard: &mut dyn Clipboard,
shell: &mut Shell<'_, ParamMessage>,
) -> event::Status {
let bounds = layout.bounds();
// The pressence of a value in `self.state.text_input_value` indicates that the field should
// be focussed. The field handles defocussing by itself
// FIMXE: This is super hacky, I have no idea how you can reuse the text input widget
@ -298,6 +296,15 @@ impl<'a, P: Param> Widget<ParamMessage, Renderer> for ParamSlider<'a, P> {
return event::Status::Captured;
}
// Compensate for the border when handling these events
let bounds = layout.bounds();
let bounds = Rectangle {
x: bounds.x + BORDER_WIDTH,
y: bounds.y + BORDER_WIDTH,
width: bounds.width - (BORDER_WIDTH * 2.0),
height: bounds.height - (BORDER_WIDTH * 2.0),
};
match event {
Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left))
| Event::Touch(touch::Event::FingerPressed { .. }) => {