diff --git a/src/client/keycode.h b/src/client/keycode.h index 1abaa97bc..7036705d1 100644 --- a/src/client/keycode.h +++ b/src/client/keycode.h @@ -38,9 +38,7 @@ public: bool operator==(const KeyPress &o) const { - if (valid_kcode(Key) && valid_kcode(o.Key)) - return Key == o.Key; - return Char > 0 && Char == o.Char; + return (Char > 0 && Char == o.Char) || (valid_kcode(Key) && Key == o.Key); } const char *sym() const; diff --git a/src/unittest/test_keycode.cpp b/src/unittest/test_keycode.cpp index 4a3b59ecd..3398626fa 100644 --- a/src/unittest/test_keycode.cpp +++ b/src/unittest/test_keycode.cpp @@ -126,11 +126,4 @@ void TestKeycode::testCompare() in.Char = L'\0'; in2.Char = L';'; UASSERT(KeyPress(in) == KeyPress(in2)); - - // Irrlicht sets chars to the according digit for numpad keys. - // We need to distinguish them in order to bind numpad keys. - irr::SEvent::SKeyInput in3; - in3.Key = irr::KEY_NUMPAD5; - in3.Char = L'5'; - UASSERT(!(KeyPress("5") == KeyPress(in3))); }