Improve DisplayServer.window_set_current_screen

Prevent unnecessary fullscreen toggle animation on macOS, when screen is not changed
Fix window position on Linux/X11
This commit is contained in:
bruvzg 2022-07-19 12:26:11 +03:00
parent 00c0fbb8cf
commit 7c005ba723
No known key found for this signature in database
GPG key ID: 7960FCF39844EC38
2 changed files with 6 additions and 2 deletions

View file

@ -1489,8 +1489,8 @@ void DisplayServerX11::window_set_current_screen(int p_screen, WindowID p_window
XMoveResizeWindow(x11_display, wd.x11_window, position.x, position.y, size.x, size.y);
} else {
if (p_screen != window_get_current_screen(p_window)) {
Point2i position = screen_get_position(p_screen);
XMoveWindow(x11_display, wd.x11_window, position.x, position.y);
Vector2 ofs = window_get_position(p_window) - screen_get_position(window_get_current_screen(p_window));
window_set_position(ofs + screen_get_position(p_screen), p_window);
}
}
}