mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2025-07-07 17:41:14 +08:00
Prevent drag spamming buttons
This commit is contained in:
parent
e8589dd533
commit
8ee2f12ef9
@ -50,6 +50,11 @@ class ButtonBase : public ComponentBase, public ButtonOption {
|
||||
}
|
||||
|
||||
auto focus_management = focused ? focus : active ? select : nothing;
|
||||
|
||||
if (focus_management == nothing) {
|
||||
isMousePressed = false;
|
||||
}
|
||||
|
||||
const EntryState state = {
|
||||
*label,
|
||||
false,
|
||||
@ -125,9 +130,16 @@ class ButtonBase : public ComponentBase, public ButtonOption {
|
||||
}
|
||||
|
||||
if (event.mouse().button == Mouse::Left &&
|
||||
event.mouse().motion == Mouse::Pressed) {
|
||||
event.mouse().motion == Mouse::Pressed && isMousePressed == false) {
|
||||
TakeFocus();
|
||||
OnClick();
|
||||
isMousePressed = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
if(event.mouse().button == Mouse::Left &&
|
||||
event.mouse().motion == Mouse::Released) {
|
||||
isMousePressed = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -137,6 +149,7 @@ class ButtonBase : public ComponentBase, public ButtonOption {
|
||||
bool Focusable() const final { return true; }
|
||||
|
||||
private:
|
||||
bool isMousePressed = false;
|
||||
bool mouse_hover_ = false;
|
||||
Box box_;
|
||||
ButtonOption option_;
|
||||
|
Loading…
Reference in New Issue
Block a user