summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabio Alessandrelli <fabio.alessandrelli@gmail.com>2016-10-03 02:40:53 +0200
committerFabio Alessandrelli <fabio.alessandrelli@gmail.com>2016-10-03 02:40:53 +0200
commit941f46038415bfdc52f61b68511c83fed59fc2fe (patch)
tree3914f7781afab8ca42116010c5f82c03d518bc18
parent3ecd8560fd90a615d80a447b04e713bb2c600fe4 (diff)
Properly encode InputEvent of type NONE. Fix #5987
In the editor settings you can disable default editor shortcuts. When a default shortcut is disabled an InputEvent of type NONE must be stored in the config file to allow the editor to remember that setting. variant_parser.cpp was not properly encoding InputEvent of type NONE causing the "corruption" of the editor settings file.
-rw-r--r--core/variant_parser.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/core/variant_parser.cpp b/core/variant_parser.cpp
index 023605a952..6b3828a572 100644
--- a/core/variant_parser.cpp
+++ b/core/variant_parser.cpp
@@ -986,7 +986,18 @@ Error VariantParser::parse_value(Token& token,Variant &value,Stream *p_stream,in
InputEvent ie;
- if (id=="KEY") {
+ if (id=="NONE") {
+
+ ie.type=InputEvent::NONE;
+
+ get_token(p_stream,token,line,r_err_str);
+
+ if (token.type!=TK_PARENTHESIS_CLOSE) {
+ r_err_str="Expected ')'";
+ return ERR_PARSE_ERROR;
+ }
+
+ } else if (id=="KEY") {
get_token(p_stream,token,line,r_err_str);
if (token.type!=TK_COMMA) {
@@ -2093,6 +2104,9 @@ Error VariantWriter::write(const Variant& p_variant, StoreStringFunc p_store_str
case InputEvent::JOYSTICK_MOTION: {
str+="JAXIS,"+itos(ev.joy_motion.axis)+","+itos(ev.joy_motion.axis_value);
} break;
+ case InputEvent::NONE: {
+ str+="NONE";
+ } break;
default: {}
}