Skip to content

Commit

Permalink
pointing_device: motion pin define and c-format weirdness (qmk#22802)
Browse files Browse the repository at this point in the history
the mutual exclusive POINTING_DEVICE_MOTION_PIN and SPLIT_POINTING_ENABLE influence if and how the `pointing_device_driver.get_report` is triggered. now the way the define is wrapping around an "unbraced" if leads clang-format to weirdly indent the first line in the 'SPLIT_POINTING_ENABLE' as the first command after the if.

this hints that any code addition in between the two - that possibly should run regardless, would break the if-def enabled code.

this can be solved by adding a pair of curly braces in the POINTING_DEVICE_MOTION_PIN part, to clearly denote which commands are to be skipped if the motion pin shows now activity.

Co-authored-by: Johannes <[email protected]>
  • Loading branch information
2 people authored and nuess0r committed Sep 8, 2024
1 parent 3eabb01 commit 3ee8288
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions quantum/pointing_device/pointing_device.c
Original file line number Diff line number Diff line change
Expand Up @@ -251,14 +251,15 @@ __attribute__((weak)) bool pointing_device_task(void) {
# else
if (readPin(POINTING_DEVICE_MOTION_PIN))
# endif
{
#endif

#if defined(SPLIT_POINTING_ENABLE)
# if defined(POINTING_DEVICE_COMBINED)
static uint8_t old_buttons = 0;
local_mouse_report.buttons = old_buttons;
local_mouse_report = pointing_device_driver.get_report(local_mouse_report);
old_buttons = local_mouse_report.buttons;
local_mouse_report.buttons = old_buttons;
local_mouse_report = pointing_device_driver.get_report(local_mouse_report);
old_buttons = local_mouse_report.buttons;
# elif defined(POINTING_DEVICE_LEFT) || defined(POINTING_DEVICE_RIGHT)
local_mouse_report = POINTING_DEVICE_THIS_SIDE ? pointing_device_driver.get_report(local_mouse_report) : shared_mouse_report;
# else
Expand All @@ -268,6 +269,10 @@ __attribute__((weak)) bool pointing_device_task(void) {
local_mouse_report = pointing_device_driver.get_report(local_mouse_report);
#endif // defined(SPLIT_POINTING_ENABLE)

#ifdef POINTING_DEVICE_MOTION_PIN
}
#endif

// allow kb to intercept and modify report
#if defined(SPLIT_POINTING_ENABLE) && defined(POINTING_DEVICE_COMBINED)
if (is_keyboard_left()) {
Expand Down

0 comments on commit 3ee8288

Please sign in to comment.