diff options
Diffstat (limited to 'editor/events.cpp')
| -rw-r--r-- | editor/events.cpp | 8 | 
1 files changed, 5 insertions, 3 deletions
| diff --git a/editor/events.cpp b/editor/events.cpp index 1ec52172..8eb99677 100644 --- a/editor/events.cpp +++ b/editor/events.cpp @@ -5,6 +5,7 @@  #include "src/world.hpp"  #include "keys.hpp"  #include "editor.hpp" +#include "compat/enum-bitset.hpp"  #include <tuple>  #include <Magnum/Platform/Sdl2Application.h>  #include <Magnum/ImGuiIntegration/Context.hpp> @@ -35,7 +36,8 @@ static constexpr int fixup_mods(int mods)  void app::clear_keys(key min_inclusive, key max_exclusive)  { -    using key_type = decltype(keys)::value_type; +    auto& keys = *keys_; +    using key_type = std::decay_t<decltype(keys)>::value_type;      for (key_type i = key_type(min_inclusive); i < key_type(max_exclusive); i++)      {          const auto idx = key(i); @@ -46,7 +48,7 @@ void app::clear_keys(key min_inclusive, key max_exclusive)  void app::clear_keys()  { -    keys.reset(); +    keys_->reset();      key_modifiers = {};  } @@ -194,7 +196,7 @@ void app::on_key_up_down(const key_event& event, bool is_down) noexcept          is_down && !event.is_repeated ? do_key(x, mods) : void();      else      { -        keys[x] = is_down; +        (*keys_)[x] = is_down;          key_modifiers[size_t(x)] = mods;      }  } | 
