Prevent windows from having a size greater than device limit
This commit is contained in:
parent
e7a0a97c0b
commit
f5a808192b
17 changed files with 69 additions and 0 deletions
|
|
@ -591,6 +591,18 @@ bool Window::is_visible() const {
|
|||
}
|
||||
|
||||
void Window::_update_window_size() {
|
||||
// Force window to respect size limitations of rendering server
|
||||
RenderingServer *rendering_server = RenderingServer::get_singleton();
|
||||
if (rendering_server) {
|
||||
Size2i max_window_size = rendering_server->get_maximum_viewport_size();
|
||||
|
||||
if (max_window_size != Size2i()) {
|
||||
size = size.min(max_window_size);
|
||||
min_size = min_size.min(max_window_size);
|
||||
max_size = max_size.min(max_window_size);
|
||||
}
|
||||
}
|
||||
|
||||
Size2i size_limit;
|
||||
if (wrap_controls) {
|
||||
size_limit = get_contents_minimum_size();
|
||||
|
|
@ -1830,6 +1842,11 @@ void Window::_bind_methods() {
|
|||
}
|
||||
|
||||
Window::Window() {
|
||||
RenderingServer *rendering_server = RenderingServer::get_singleton();
|
||||
if (rendering_server) {
|
||||
max_size = rendering_server->get_maximum_viewport_size();
|
||||
}
|
||||
|
||||
theme_owner = memnew(ThemeOwner);
|
||||
RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RS::VIEWPORT_UPDATE_DISABLED);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue