Dimension (Dimension size, Dimension editorSize) { ARROW_BUTTON_SIZE.update(); Insets i = getInsets(); int editorHeight = editorSize != null ? editorSize.height + i.top + i.bottom + padding.top + padding.bottom : 0; int editorWidth = editorSize != null ? editorSize.width + i.left + padding.left + padding.right : 0; editorWidth = Math.max(editorWidth, DarculaUIUtil.MINIMUM_WIDTH.get() + i.left); int width = size != null ? size.width : 0; int height = size != null ? size.height : 0; width = Math.max(editorWidth + ARROW_BUTTON_SIZE.width, width + padding.left); height = Math.max(ARROW_BUTTON_SIZE.height, Math.max(editorHeight, height)); return new Dimension(width, height); }