summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Haas <liu.gam3@gmail.com>2017-05-26 21:14:59 +0200
committerAndreas Haas <liu.gam3@gmail.com>2017-05-27 10:52:57 +0200
commit3204befd1eb42cc87ae296148e1361a8b001d08d (patch)
tree5b2cff251fe700e33efafd6d67fb8749ef315a2c
parent8d9206516428ca55f0832db5f261516654929676 (diff)
Fix InputEvent actions.
The `InputEvent::is_action(pressed|released)` methods weren't implemented yet. Also fixed a typo in `InputDefault` that prevented `Input.is_action(pressed|released)` from working.
-rw-r--r--core/os/input_event.cpp4
-rw-r--r--main/input_default.cpp2
2 files changed, 3 insertions, 3 deletions
diff --git a/core/os/input_event.cpp b/core/os/input_event.cpp
index cf3b8f74ec..7ec76c1eed 100644
--- a/core/os/input_event.cpp
+++ b/core/os/input_event.cpp
@@ -62,11 +62,11 @@ bool InputEvent::is_action(const StringName &p_action) const {
bool InputEvent::is_action_pressed(const StringName &p_action) const {
- return false; // InputMap::get_singleton()->event_is_action(Ref<InputEvent>(this),p_action);
+ return (is_pressed() && !is_echo() && is_action(p_action));
}
bool InputEvent::is_action_released(const StringName &p_action) const {
- return false;
+ return (!is_pressed() && is_action(p_action));
}
bool InputEvent::is_echo() const {
diff --git a/main/input_default.cpp b/main/input_default.cpp
index 9e11a595dc..0de30e5e9e 100644
--- a/main/input_default.cpp
+++ b/main/input_default.cpp
@@ -369,7 +369,7 @@ void InputDefault::parse_input_event(const Ref<InputEvent> &p_event) {
set_joy_axis(jm->get_device(), jm->get_axis(), jm->get_axis_value());
}
- if (p_event->is_echo()) {
+ if (!p_event->is_echo()) {
for (const Map<StringName, InputMap::Action>::Element *E = InputMap::get_singleton()->get_action_map().front(); E; E = E->next()) {
if (InputMap::get_singleton()->event_is_action(p_event, E->key()) && is_action_pressed(E->key()) != p_event->is_pressed()) {