Browse Source

Fix more scrollbar anchorings

Michael Alexsander 5 years ago
parent
commit
e69593842e

+ 10 - 0
editor/plugins/polygon_2d_editor_plugin.cpp

@@ -1196,7 +1196,9 @@ void Polygon2DEditor::_uv_draw() {
 
 	rect.position -= uv_edit_draw->get_size();
 	rect.size += uv_edit_draw->get_size() * 2.0;
+
 	updating_uv_scroll = true;
+
 	uv_hscroll->set_min(rect.position.x);
 	uv_hscroll->set_max(rect.position.x + rect.size.x);
 	if (ABS(rect.position.x - (rect.position.x + rect.size.x)) <= uv_edit_draw->get_size().x) {
@@ -1216,6 +1218,14 @@ void Polygon2DEditor::_uv_draw() {
 		uv_vscroll->set_page(uv_edit_draw->get_size().y);
 		uv_vscroll->set_value(uv_draw_ofs.y);
 	}
+
+	Size2 hmin = uv_hscroll->get_combined_minimum_size();
+	Size2 vmin = uv_vscroll->get_combined_minimum_size();
+
+	// Avoid scrollbar overlapping.
+	uv_hscroll->set_anchor_and_margin(MARGIN_RIGHT, ANCHOR_END, uv_vscroll->is_visible() ? -vmin.width : 0);
+	uv_vscroll->set_anchor_and_margin(MARGIN_BOTTOM, ANCHOR_END, uv_hscroll->is_visible() ? -hmin.height : 0);
+
 	updating_uv_scroll = false;
 }
 

+ 9 - 0
editor/plugins/texture_region_editor_plugin.cpp

@@ -178,6 +178,7 @@ void TextureRegionEditor::_region_draw() {
 	scroll_rect.size += scroll_margin * 2;
 
 	updating_scroll = true;
+
 	hscroll->set_min(scroll_rect.position.x);
 	hscroll->set_max(scroll_rect.position.x + scroll_rect.size.x);
 	if (ABS(scroll_rect.position.x - (scroll_rect.position.x + scroll_rect.size.x)) <= scroll_margin.x) {
@@ -198,6 +199,14 @@ void TextureRegionEditor::_region_draw() {
 		vscroll->set_page(scroll_margin.y);
 		vscroll->set_value(draw_ofs.y);
 	}
+
+	Size2 hmin = hscroll->get_combined_minimum_size();
+	Size2 vmin = vscroll->get_combined_minimum_size();
+
+	// Avoid scrollbar overlapping.
+	hscroll->set_anchor_and_margin(MARGIN_RIGHT, ANCHOR_END, vscroll->is_visible() ? -vmin.width : 0);
+	vscroll->set_anchor_and_margin(MARGIN_BOTTOM, ANCHOR_END, hscroll->is_visible() ? -hmin.height : 0);
+
 	updating_scroll = false;
 
 	if (node_ninepatch || obj_styleBox.is_valid()) {