diff --git a/src/main/java/ru/dbotthepony/mc/otm/screen/panels/EditablePanel.java b/src/main/java/ru/dbotthepony/mc/otm/screen/panels/EditablePanel.java index 09ce0f0af..b8fd0c2a6 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/screen/panels/EditablePanel.java +++ b/src/main/java/ru/dbotthepony/mc/otm/screen/panels/EditablePanel.java @@ -634,54 +634,31 @@ public class EditablePanel implements GuiEventListener { var dock_top = dock_padding.top; var dock_bottom = dock_padding.bottom; - // determine sizes - for (var child : children) { - if (child.getVisible()) { - switch (child.dock) { - case TOP -> dock_top += child.height + child.dock_margin.top; - case BOTTOM -> dock_bottom += child.height + child.dock_margin.bottom; - case LEFT -> dock_left += child.width + child.dock_margin.left; - case RIGHT -> dock_right += child.width + child.dock_margin.right; - } - - bound_x = Math.min(bound_x, child.x); - bound_y = Math.min(bound_y, child.y); - - bound_width = Math.max(bound_width, child.x + child.width); - bound_height = Math.max(bound_height, child.y + child.height); - } - } - - var dock_left2 = dock_padding.left; - var dock_right2 = dock_padding.right; - var dock_top2 = dock_padding.top; - var dock_bottom2 = dock_padding.bottom; - // apply values for (var child : children) { if (child.getVisible()) { switch (child.dock) { case TOP -> { - child.setPos(dock_left + child.dock_margin.left, dock_top2 + child.dock_margin.top); - dock_top2 += child.height + child.dock_margin.top + child.dock_margin.bottom; + child.setPos(dock_left + child.dock_margin.left, dock_top + child.dock_margin.top); + dock_top += child.height + child.dock_margin.top + child.dock_margin.bottom; child.setWidth(Math.max(1, width - dock_left - dock_right - child.dock_margin.left - child.dock_margin.right)); } case BOTTOM -> { - child.setPos(dock_left + child.dock_margin.left, height - dock_bottom2 - child.height - child.dock_margin.bottom); - dock_bottom2 += child.height + child.dock_margin.top + child.dock_margin.bottom; + child.setPos(dock_left + child.dock_margin.left, height - dock_bottom - child.height - child.dock_margin.bottom); + dock_bottom += child.height + child.dock_margin.top + child.dock_margin.bottom; child.setWidth(Math.max(1, width - dock_left - dock_right - child.dock_margin.left - child.dock_margin.right)); } case LEFT -> { - child.setPos(dock_left2 + child.dock_margin.left, dock_top + child.dock_margin.top); - dock_left2 += child.width + child.dock_margin.left + child.dock_margin.right; + child.setPos(dock_left + child.dock_margin.left, dock_top + child.dock_margin.top); + dock_left += child.width + child.dock_margin.left + child.dock_margin.right; child.setHeight(Math.max(1, height - dock_top - dock_bottom - child.dock_margin.top - child.dock_margin.bottom)); } case RIGHT -> { - child.setPos(width - dock_right2 - child.width - child.dock_margin.right, dock_top + child.dock_margin.top); - dock_right2 += child.width + child.dock_margin.left + child.dock_margin.right; + child.setPos(width - dock_right - child.width - child.dock_margin.right, dock_top + child.dock_margin.top); + dock_right += child.width + child.dock_margin.left + child.dock_margin.right; child.setHeight(Math.max(1, height - dock_top - dock_bottom - child.dock_margin.top - child.dock_margin.bottom)); } } @@ -692,10 +669,10 @@ public class EditablePanel implements GuiEventListener { if (child.getVisible()) { if (child.dock == Dock.FILL) { child.setDimensions( - dock_left2 + child.dock_margin.left, - dock_top2 + child.dock_margin.top, - width - child.dock_margin.left - child.dock_margin.right - dock_right2 - dock_left2, - height - child.dock_margin.bottom - child.dock_margin.top - dock_bottom2 - dock_top2); + dock_left + child.dock_margin.left, + dock_top + child.dock_margin.top, + width - child.dock_margin.left - child.dock_margin.right - dock_right - dock_left, + height - child.dock_margin.bottom - child.dock_margin.top - dock_bottom - dock_top); } } }