summaryrefslogtreecommitdiffstats
path: root/core/os
diff options
context:
space:
mode:
authorTomasz Chabora <kobewi4e@gmail.com>2019-10-24 23:51:33 +0200
committerTomasz Chabora <kobewi4e@gmail.com>2019-11-07 16:39:14 +0100
commita7b202ef188c789da8940f4fea285485063801b6 (patch)
tree36066f344960eae19423e9f99b62c6a13cd54644 /core/os
parent930d6d8ca4c34b0383d232335902f7f808806a66 (diff)
downloadredot-engine-a7b202ef188c789da8940f4fea285485063801b6.tar.gz
Fix analog input in sliders
Diffstat (limited to 'core/os')
-rw-r--r--core/os/input_event.cpp6
-rw-r--r--core/os/input_event.h2
2 files changed, 4 insertions, 4 deletions
diff --git a/core/os/input_event.cpp b/core/os/input_event.cpp
index 30fca0c155..831aa60d66 100644
--- a/core/os/input_event.cpp
+++ b/core/os/input_event.cpp
@@ -49,11 +49,11 @@ bool InputEvent::is_action(const StringName &p_action) const {
return InputMap::get_singleton()->event_is_action(Ref<InputEvent>((InputEvent *)this), p_action);
}
-bool InputEvent::is_action_pressed(const StringName &p_action) const {
+bool InputEvent::is_action_pressed(const StringName &p_action, bool p_allow_echo) const {
bool pressed;
bool valid = InputMap::get_singleton()->event_get_action_status(Ref<InputEvent>((InputEvent *)this), p_action, &pressed);
- return valid && pressed && !is_echo();
+ return valid && pressed && (p_allow_echo || !is_echo());
}
bool InputEvent::is_action_released(const StringName &p_action) const {
@@ -112,7 +112,7 @@ void InputEvent::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_device"), &InputEvent::get_device);
ClassDB::bind_method(D_METHOD("is_action", "action"), &InputEvent::is_action);
- ClassDB::bind_method(D_METHOD("is_action_pressed", "action"), &InputEvent::is_action_pressed);
+ ClassDB::bind_method(D_METHOD("is_action_pressed", "action"), &InputEvent::is_action_pressed, DEFVAL(false));
ClassDB::bind_method(D_METHOD("is_action_released", "action"), &InputEvent::is_action_released);
ClassDB::bind_method(D_METHOD("get_action_strength", "action"), &InputEvent::get_action_strength);
diff --git a/core/os/input_event.h b/core/os/input_event.h
index 28658e3865..6b49d1fa20 100644
--- a/core/os/input_event.h
+++ b/core/os/input_event.h
@@ -184,7 +184,7 @@ public:
int get_device() const;
bool is_action(const StringName &p_action) const;
- bool is_action_pressed(const StringName &p_action) const;
+ bool is_action_pressed(const StringName &p_action, bool p_allow_echo = false) const;
bool is_action_released(const StringName &p_action) const;
float get_action_strength(const StringName &p_action) const;