@@ -134,33 +134,23 @@ int ViewportTexture::get_width() const {
134134 _err_print_viewport_not_set ();
135135 return 0 ;
136136 }
137- if (vp->is_sub_viewport ()) {
138- return vp->size .width ;
139- }
140- return vp->size .width * vp->get_stretch_transform ().get_scale ().width ;
137+ return vp->size .width ;
141138}
142139
143140int ViewportTexture::get_height () const {
144141 if (!vp) {
145142 _err_print_viewport_not_set ();
146143 return 0 ;
147144 }
148- if (vp->is_sub_viewport ()) {
149- return vp->size .height ;
150- }
151- return vp->size .height * vp->get_stretch_transform ().get_scale ().height ;
145+ return vp->size .height ;
152146}
153147
154148Size2 ViewportTexture::get_size () const {
155149 if (!vp) {
156150 _err_print_viewport_not_set ();
157151 return Size2 ();
158152 }
159- if (vp->is_sub_viewport ()) {
160- return vp->size ;
161- }
162- Size2 scale = vp->get_stretch_transform ().get_scale ();
163- return Size2 (vp->size .width * scale.width , vp->size .height * scale.height ).ceil ();
153+ return vp->size ;
164154}
165155
166156RID ViewportTexture::get_rid () const {
@@ -337,7 +327,7 @@ void Viewport::_sub_window_update(Window *p_window) {
337327 sw.pending_window_update = false ;
338328
339329 RS::get_singleton ()->canvas_item_clear (sw.canvas_item );
340- const Rect2i r = Rect2i (p_window->get_position (), p_window->get_size ());
330+ const Rect2i r = Rect2i (p_window->get_position (), p_window->_get_size_2d_override ());
341331
342332 if (!p_window->get_flag (Window::FLAG_BORDERLESS)) {
343333 Ref<StyleBox> panel = gui.subwindow_focused == p_window ? p_window->theme_cache .embedded_border : p_window->theme_cache .embedded_unfocused_border ;
@@ -372,7 +362,7 @@ void Viewport::_sub_window_update(Window *p_window) {
372362 close_icon->draw (sw.canvas_item , r.position + Vector2 (r.size .width - close_h_ofs, -close_v_ofs));
373363 }
374364
375- const Transform2D xform = sw.window ->window_transform * sw. window -> stretch_transform ;
365+ const Transform2D xform = sw.window ->window_transform ;
376366 Rect2 vr = xform.xform (sw.window ->get_visible_rect ());
377367 vr.position += p_window->get_position ();
378368 if (vr != r) {
0 commit comments