When the mouse moves from one window to another, the mouseExit event
for the old window can occur after the mouseMove event for the new.
Until this commit this would cause the MouseInputSource to be
associated with the old window, and getComponentUnderMouse() would
incorrectly return a nullptr.
Without this MouseInputSource::getComponentUnderMouse() will report a
stale value after moving the cursor within a single peer using
MouseInputSource::setRawMousePosition().
This fixes an issue where e.g. pressing 'return' to select an item from
an IME list would directly insert a newline character, rather than
selecting the entry.
This fixes an issue where the FileListComponent might fail to select a
file, because the file list reported that it was still loading during
the final ChangeListener callback.
When using RDP to access a Fedora machine running Gnome, the only
available colourmap is 32-bit. The old implementation caused GUI apps to
crash when they attempted to use a null colourmap pointer.
A regression was introduced in d564e4931. Before that commit you
could use key up to jump into position zero of a multiline TextEditor
if the cursor was somewhere in the first line. Since that commit the
keypress had no effect. This change restores the earlier behaviour.
When using Universal Control, the system seems to translate mouse scroll
events into swipe gestures, meaning that the gesture position is not
constant during the gesture.
Until this commit Items with a size of 1 could be rounded to
bounds with a size of 0 or 2 due to floating point errors, leading
to slightly too large or disappearing items. The new approach
preserves the size of items.
This commit fixes an issue when using large lineSpacing, where the caret
would jump to the end of the previous line when clicking between lines.
With the new behaviour the line spacing is considered to belong to the
previous line.
The commit also changes the behaviour observed when clicking in the
empty space before the first line. Until now the caret would jump into
the first character position. Now it behaves as if the space before the
first line would belong to the first line.