forked from joejulian/gio
e49c5b02c7
Click and Hover both stored the first PointerID they observed in their internal pid field and only updated it when not currently hovered/entered. Once the gesture became hovered, any later event under a different PointerID was effectively ignored: Click.Press fell through 'c.pid != e.PointerID' and was silently dropped, and Hover could never reset entered when the matching Leave arrived under a new ID. The Windows backend enables EnableMouseInPointer (app/os_windows.go), under which Windows reassigns the same physical mouse's PointerID across focus changes, window leave/re-enter, and similar events. Once a widget had been hovered, every subsequent press on it failed to register, including widget.Editor's internal clicker that positions the caret on press. Multi-line editors silently refused to move the caret on click after the window had received any focus event. Always take the latest PointerID on Hover.Enter and Click.Press. The Press/Release handshake still works because Press now records the press's own PointerID and Release continues to gate on 'c.pid != e.PointerID' so an unrelated pointer's release can't end the press tracking. Signed-off-by: Eugene <eugenebosyakov@gmail.com>