Pass window exclusive and transient properties for subwindow creation
On Windows this allows to avoid having to change the owner of the window after it has been created, which in rare circumstances may cause the window to bug out.
This commit is contained in:
@ -631,7 +631,7 @@ void Window::_make_window() {
|
||||
window_rect = Rect2i(DisplayServer::get_singleton()->screen_get_position(DisplayServer::SCREEN_WITH_KEYBOARD_FOCUS) + (DisplayServer::get_singleton()->screen_get_size(DisplayServer::SCREEN_WITH_KEYBOARD_FOCUS) - size) / 2, size);
|
||||
}
|
||||
|
||||
window_id = DisplayServer::get_singleton()->create_sub_window(DisplayServer::WindowMode(mode), vsync_mode, f, window_rect);
|
||||
window_id = DisplayServer::get_singleton()->create_sub_window(DisplayServer::WindowMode(mode), vsync_mode, f, window_rect, is_in_edited_scene_root() ? false : exclusive, transient_parent ? transient_parent->window_id : DisplayServer::INVALID_WINDOW_ID);
|
||||
ERR_FAIL_COND(window_id == DisplayServer::INVALID_WINDOW_ID);
|
||||
DisplayServer::get_singleton()->window_set_max_size(Size2i(), window_id);
|
||||
DisplayServer::get_singleton()->window_set_min_size(Size2i(), window_id);
|
||||
@ -639,18 +639,8 @@ void Window::_make_window() {
|
||||
DisplayServer::get_singleton()->window_set_title(tr_title, window_id);
|
||||
DisplayServer::get_singleton()->window_attach_instance_id(get_instance_id(), window_id);
|
||||
|
||||
if (is_in_edited_scene_root()) {
|
||||
DisplayServer::get_singleton()->window_set_exclusive(window_id, false);
|
||||
} else {
|
||||
DisplayServer::get_singleton()->window_set_exclusive(window_id, exclusive);
|
||||
}
|
||||
|
||||
_update_window_size();
|
||||
|
||||
if (transient_parent && transient_parent->window_id != DisplayServer::INVALID_WINDOW_ID) {
|
||||
DisplayServer::get_singleton()->window_set_transient(window_id, transient_parent->window_id);
|
||||
}
|
||||
|
||||
if (transient_parent) {
|
||||
for (const Window *E : transient_children) {
|
||||
if (E->window_id != DisplayServer::INVALID_WINDOW_ID) {
|
||||
|
||||
Reference in New Issue
Block a user