diff --git a/library/windows/GLFW Library.vcxproj b/library/windows/GLFW Library.vcxproj index 634ea94d9..8ea8c4899 100644 --- a/library/windows/GLFW Library.vcxproj +++ b/library/windows/GLFW Library.vcxproj @@ -263,6 +263,7 @@ + diff --git a/library/windows/GLFW Library.vcxproj.filters b/library/windows/GLFW Library.vcxproj.filters index 02a3922cf..bf7b4fad3 100644 --- a/library/windows/GLFW Library.vcxproj.filters +++ b/library/windows/GLFW Library.vcxproj.filters @@ -21,6 +21,45 @@ Source Files + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + @@ -32,4 +71,4 @@ Source Files - + \ No newline at end of file diff --git a/library/windows/embedder.cpp b/library/windows/embedder.cpp index e76f35f9a..f6522ca3f 100644 --- a/library/windows/embedder.cpp +++ b/library/windows/embedder.cpp @@ -21,6 +21,7 @@ #include +#include "library/common/glfw/key_event_handler.h" #include "library/common/glfw/keyboard_hook_handler.h" #include "library/common/glfw/text_input_plugin.h" #include "library/common/internal/plugin_handler.h" @@ -36,6 +37,10 @@ struct FlutterEmbedderState { // deleted from the heap. std::vector keyboard_hook_handlers; + + // Handles raw key interactions from GLFW. + // TODO: Revisit ownership model once Issue #102 is resolved. + std::unique_ptr key_event_handler; }; static constexpr char kDefaultWindowTitle[] = "Flutter"; @@ -268,6 +273,10 @@ GLFWwindow *CreateFlutterWindow(size_t initial_width, size_t initial_height, FlutterEmbedderState *state = new FlutterEmbedderState(); state->plugin_handler = std::make_unique(engine); state->engine = engine; + + state->key_event_handler = + std::make_unique(state->plugin_handler.get()); + state->keyboard_hook_handlers.push_back(state->key_event_handler.get()); auto input_plugin = std::make_unique(); state->keyboard_hook_handlers.push_back(input_plugin.get());