mirror of
https://github.com/godotengine/godot.git
synced 2024-10-23 13:41:43 +00:00
Merge pull request #52858 from SilverCreekEntertainment/fix-cursor-disappearing-in-windows-fullscreen-4.x
Fix Windows cursor with trails disappearing in fullscreen
This commit is contained in:
commit
275aa4edb8
|
@ -955,6 +955,11 @@ void DisplayServerWindows::window_set_mode(WindowMode p_mode, WindowID p_window)
|
|||
_update_window_style(p_window, false);
|
||||
|
||||
MoveWindow(wd.hWnd, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, TRUE);
|
||||
|
||||
if (restore_mouse_trails > 1) {
|
||||
SystemParametersInfoA(SPI_SETMOUSETRAILS, restore_mouse_trails, 0, 0);
|
||||
restore_mouse_trails = 0;
|
||||
}
|
||||
} else if (p_mode == WINDOW_MODE_WINDOWED) {
|
||||
ShowWindow(wd.hWnd, SW_RESTORE);
|
||||
wd.maximized = false;
|
||||
|
@ -994,6 +999,13 @@ void DisplayServerWindows::window_set_mode(WindowMode p_mode, WindowID p_window)
|
|||
_update_window_style(false);
|
||||
|
||||
MoveWindow(wd.hWnd, pos.x, pos.y, size.width, size.height, TRUE);
|
||||
|
||||
// If the user has mouse trails enabled in windows, then sometimes the cursor disappears in fullscreen mode.
|
||||
// Save number of trails so we can restore when exiting, then turn off mouse trails
|
||||
SystemParametersInfoA(SPI_GETMOUSETRAILS, 0, &restore_mouse_trails, 0);
|
||||
if (restore_mouse_trails > 1) {
|
||||
SystemParametersInfoA(SPI_SETMOUSETRAILS, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3395,4 +3407,8 @@ DisplayServerWindows::~DisplayServerWindows() {
|
|||
memdelete(context_vulkan);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (restore_mouse_trails > 1) {
|
||||
SystemParametersInfoA(SPI_SETMOUSETRAILS, restore_mouse_trails, 0, 0);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -403,6 +403,7 @@ class DisplayServerWindows : public DisplayServer {
|
|||
void _get_window_style(bool p_main_window, bool p_fullscreen, bool p_borderless, bool p_resizable, bool p_maximized, bool p_no_activate_focus, DWORD &r_style, DWORD &r_style_ex);
|
||||
|
||||
MouseMode mouse_mode;
|
||||
int restore_mouse_trails = 0;
|
||||
bool alt_mem = false;
|
||||
bool gr_mem = false;
|
||||
bool shift_mem = false;
|
||||
|
|
Loading…
Reference in New Issue
Block a user