mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-02-18 11:50:30 +01:00
read-only mirror of https://gitlab.freedesktop.org/xorg/xserver
Disclaimer: It's 6:51am. I'm trying to be as understandable as possible. What was happening previously was this: * Press Alt * Extended event generated and processed: state is now Alt down once * Core event generated - keyboard switched: inherited state is Alt down once - event processed: Alt down twice * Release Alt * Extended event generated and processed: state is now null * Core event generated and processed: Alt down once If we switch the order: * Press Alt * Core event generated: - keyboard switched: inherited state is null - event processed: Alt down once * Extended event generated and processed: state is now Alt down once * Release Alt * Core event generated and processed: state is now null * Extended event generated and processed: state is now null When we carry over the previous state, it needs to be the _previous_ state (state and modifiersPerKey), assuming that we're going to catch now-core events for any of these. For example, if Ctrl is held down as we pivot, we need to carry Ctrl over with a count of one, for which an extended + core release will then clear. Carrying over the union of the previous state _and the state resulting from the immediate action_ was what broke things. |
||
|---|---|---|
| afb | ||
| cfb | ||
| cfb32 | ||
| composite | ||
| config | ||
| damageext | ||
| dbe | ||
| dix | ||
| doc | ||
| exa | ||
| fb | ||
| GL | ||
| hw | ||
| include | ||
| mfb | ||
| mi | ||
| miext | ||
| os | ||
| randr | ||
| record | ||
| render | ||
| Xext | ||
| xfixes | ||
| Xi | ||
| xkb | ||
| XTrap | ||
| .gitignore | ||
| acinclude.m4 | ||
| autogen.sh | ||
| configure.ac | ||
| COPYING | ||
| cpprules.in | ||
| Makefile.am | ||
| xorg-server.m4 | ||
| xorg-server.pc.in | ||