windows: Fix cursor style not changing when hovering over items in the title bar (#22580)
Closes #22578 Currently, the `hovered` boolean in the window state is only updated by the `WM_MOUSELEAVE` event, which fires when the mouse cursor leaves the window's working area. This means that when the user moves the cursor from the window to the title bar, `hovered` is set to `false`. Later in the code, this flag is used to determine the cursor style and check if the cursor is over the correct window. The `hovered` boolean should remain active even when the mouse is over non-client items, such as the title bar or window borders. This PR fixes that by using `WM_NCMOUSELEAVE` event, which is triggered when the mouse leaves non-client items. This event is used to update the `hovered` boolean accordingly. Now, `hovered` is `true` when the mouse is over the window's working area, as well as non-client areas like the title bar. More context: - Existing: `dwFlags: TME_LEAVE` tracks window area mouse leaves, which is used in `handle_mouse_move_msg` func. - New: `dwFlags: TME_LEAVE | TME_NONCLIENT` tracks non-client mouse leaves, which is used in `handle_nc_mouse_move_msg` func. Preview: https://github.com/user-attachments/assets/b319303f-81b9-45cb-bf0c-535a59b96561 Release Notes: - Fix cursor style not changing on hover over items in the title bar on Windows
T
tims committed
71a0eb3b13fa6085022e87c73a4ac0ce5c117a23
Parent: dd75f85
Committed by GitHub <noreply@github.com>
on 1/4/2025, 12:01:29 AM