fix(button): unfocus on click to prevent multiple focused buttons
This commit is contained in:
parent
ae5bb40d6e
commit
d011be6feb
1 changed files with 4 additions and 2 deletions
|
|
@ -724,12 +724,14 @@ pub fn update<'a, Message: Clone>(
|
||||||
match event {
|
match event {
|
||||||
Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left))
|
Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left))
|
||||||
| Event::Touch(touch::Event::FingerPressed { .. }) => {
|
| Event::Touch(touch::Event::FingerPressed { .. }) => {
|
||||||
|
// Unfocus the button on clicks in case another widget was clicked.
|
||||||
|
let state = state();
|
||||||
|
state.unfocus();
|
||||||
|
|
||||||
if on_press.is_some() || on_press_down.is_some() {
|
if on_press.is_some() || on_press_down.is_some() {
|
||||||
let bounds = layout.bounds();
|
let bounds = layout.bounds();
|
||||||
|
|
||||||
if cursor.is_over(bounds) {
|
if cursor.is_over(bounds) {
|
||||||
let state = state();
|
|
||||||
|
|
||||||
state.is_pressed = true;
|
state.is_pressed = true;
|
||||||
|
|
||||||
if let Some(on_press_down) = on_press_down {
|
if let Some(on_press_down) = on_press_down {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue