diff --git a/drivers/oled/oled_driver.c b/drivers/oled/oled_driver.c index ab04ff3d40a..4a2121cd7c5 100644 --- a/drivers/oled/oled_driver.c +++ b/drivers/oled/oled_driver.c @@ -19,6 +19,9 @@ along with this program. If not, see . # include "spi_master.h" #elif defined(OLED_TRANSPORT_I2C) # include "i2c_master.h" +# if defined(USE_I2C) && defined(SPLIT_KEYBOARD) +# include "keyboard.h" +# endif #endif #include "oled_driver.h" #include OLED_FONT_H diff --git a/quantum/mousekey.c b/quantum/mousekey.c index c982a2f40b4..39108117524 100644 --- a/quantum/mousekey.c +++ b/quantum/mousekey.c @@ -389,7 +389,20 @@ void mousekey_on(uint8_t code) { if (mouse_timer == 0) { mouse_timer = timer_read(); } -# endif /* #ifdef MK_KINETIC_SPEED */ +# endif + +# ifndef MOUSEKEY_INERTIA + // If mouse report is not zero, the current mousekey press is overlapping + // with another. Restart acceleration for smoother directional transition. + if (mouse_report.x || mouse_report.y || mouse_report.h || mouse_report.v) { +# ifdef MK_KINETIC_SPEED + mouse_timer = timer_read() - (MOUSEKEY_INTERVAL << 2); +# else + mousekey_repeat = MOUSEKEY_MOVE_DELTA; + mousekey_wheel_repeat = MOUSEKEY_WHEEL_DELTA; +# endif + } +# endif // ifndef MOUSEKEY_INERTIA # ifdef MOUSEKEY_INERTIA