From 65fee12dad3504c28c10148bcd357faa09c0b357 Mon Sep 17 00:00:00 2001 From: Gergely Nagy Date: Fri, 28 Jul 2017 17:12:43 +0200 Subject: [PATCH] Move Mouse & AbsoluteMouse initialization to MouseWrapper.begin To avoid issues with static initialization order, move the Mouse & AbsoluteMouse initialization from the MouseWrapper constructor to MouseWrapper.begin, which will be called from MouseKeys.begin. Thus, user code does not need to change. This fixes keyboardio/Kaleidoscope#140. Signed-off-by: Gergely Nagy --- src/Kaleidoscope-MouseKeys.cpp | 1 + src/MouseWrapper.cpp | 3 +++ src/MouseWrapper.h | 1 + 3 files changed, 5 insertions(+) diff --git a/src/Kaleidoscope-MouseKeys.cpp b/src/Kaleidoscope-MouseKeys.cpp index 927d2e9d..70572429 100644 --- a/src/Kaleidoscope-MouseKeys.cpp +++ b/src/Kaleidoscope-MouseKeys.cpp @@ -112,6 +112,7 @@ MouseKeys_::MouseKeys_(void) { void MouseKeys_::begin(void) { + MouseWrapper.begin(); event_handler_hook_use(eventHandlerHook); loop_hook_use(loopHook); } diff --git a/src/MouseWrapper.cpp b/src/MouseWrapper.cpp index 4da39c0a..f5aec4c3 100644 --- a/src/MouseWrapper.cpp +++ b/src/MouseWrapper.cpp @@ -14,6 +14,9 @@ boolean MouseWrapper_::is_warping; uint8_t MouseWrapper_::accelStep; MouseWrapper_::MouseWrapper_(void) { +} + +void MouseWrapper_::begin(void) { kaleidoscope::hid::initializeMouse(); kaleidoscope::hid::initializeAbsoluteMouse(); } diff --git a/src/MouseWrapper.h b/src/MouseWrapper.h index 86079b52..b1c0cefa 100644 --- a/src/MouseWrapper.h +++ b/src/MouseWrapper.h @@ -31,6 +31,7 @@ class MouseWrapper_ { public: MouseWrapper_(void); + static void begin(void); static void move(int8_t x, int8_t y); static void warp(uint8_t warp_cmd); static void pressButton(uint8_t button);