Go to file
Stefan Kerkmann b2d068d1aa
Fix mouse-key spamming empty reports (#21663)
Problem:

`mousekey_task` spams empty hid reports with when a mouse key is
pressed, causing resource exhaustion in the USB mouse endpoint.

Cause:

The check whether or not to send a new mouse report would always
evaluate to true if a mouse key is pressed:

1. `mouse_report` has non-zero fields and `tmpmr` is a copy of this
   fields.
2. `mouse_report` is set to zero, `tmpmr` has now non-zero fields.
3. `has_mouse_report_changed` compares the two and evaluates to true
4. a mouse report is sent.

Fix:

The check condition of `has_mouse_report_changed` will evaluate any
empty record as unchanged, as mouse report data is relative and doesn't
need to return to zero. An empty report will still be send by
`register_mouse` on release of all mouse buttons.
2023-08-02 13:47:25 +02:00
.github Bump JamesIves/github-pages-deploy-action from 4.4.2 to 4.4.3 (#21518) 2023-07-13 00:14:23 +01:00
.vscode Far better VSCode intellisense support using clangd. (#20382) 2023-05-14 15:32:34 +10:00
builddefs LED Matrix: driver naming cleanups (#21580) 2023-07-29 15:25:00 +10:00
data Remove layout aliases from keyboard_aliases.hjson (#21658) 2023-08-01 01:54:28 +01:00
docs Merge remote-tracking branch 'origin/master' into develop 2023-07-30 04:23:13 +00:00
drivers LED Matrix: driver naming cleanups (#21580) 2023-07-29 15:25:00 +10:00
keyboards Automata02 Alisaie Develop Touch-Up (#21630) 2023-08-02 01:15:56 -07:00
layouts Remove old OLED API code (#21651) 2023-07-31 15:43:10 +01:00
lib Remove layout aliases from keyboard_aliases.hjson (#21658) 2023-08-01 01:54:28 +01:00
platforms Remove needless precision in additive DAC sample generation (#21498) 2023-07-26 21:06:14 -07:00
quantum Fix Dynamic Macro Compilation for avr-gcc 5.4.0 + Linux (#21653) 2023-08-01 22:49:58 -07:00
tests On-each-release tap dance function (#20255) 2023-07-26 21:04:35 -07:00
tmk_core Fix mouse-key spamming empty reports (#21663) 2023-08-02 13:47:25 +02:00
users Bluetooth: driver naming cleanups (#21624) 2023-07-29 15:16:14 +10:00
util Merge upstream uf2conv.py changes (#21107) 2023-06-01 21:12:25 +01:00
.clang-format
.clangd Far better VSCode intellisense support using clangd. (#20382) 2023-05-14 15:32:34 +10:00
.editorconfig
.gitattributes
.gitignore Merge remote-tracking branch 'origin/master' into develop 2023-04-11 01:44:24 +00:00
.gitmodules [Core] Quantum Painter - LVGL Integration (#18499) 2022-12-13 07:51:14 +11:00
Doxyfile
LICENSE
Makefile Remove `make all-<platform>` build targets (#19496) 2023-01-19 10:44:41 +11:00
doxygen-todo
license_GPLv2.md
license_GPLv3.md
license_Modified_BSD.md
nose2.cfg
paths.mk Remove quantum/audio from global VPATH (#18753) 2022-10-20 14:41:45 +01:00
readme.md Branch point for 2023q3 Breaking Change. 2023-05-29 06:20:09 +10:00
requirements-dev.txt
requirements.txt Align CLI requirements (#18117) 2022-08-21 18:38:17 +01:00
setup.cfg
shell.nix Nix shell updates for `develop` (#18131) 2022-08-23 02:59:33 +01:00

readme.md

THIS IS THE DEVELOP BRANCH

Warning- This is the develop branch of QMK Firmware. You may encounter broken code here. Please see Breaking Changes for more information.

Quantum Mechanical Keyboard Firmware

Current Version Discord Docs Status GitHub contributors GitHub forks

This is a keyboard firmware based on the tmk_keyboard firmware with some useful features for Atmel AVR and ARM controllers, and more specifically, the OLKB product line, the ErgoDox EZ keyboard, and the Clueboard product line.

Documentation

The docs are powered by Docsify and hosted on GitHub. They are also viewable offline; see Previewing the Documentation for more details.

You can request changes by making a fork and opening a pull request, or by clicking the "Edit this page" link at the bottom of any page.

Supported Keyboards

The project also includes community support for lots of other keyboards.

Maintainers

QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, Hasu. The OLKB product firmwares are maintained by Jack Humbert, the Ergodox EZ by ZSA Technology Labs, the Clueboard by Zach White, and the Atreus by Phil Hagelberg.

Official Website

qmk.fm is the official website of QMK, where you can find links to this page, the documentation, and the keyboards supported by QMK.