diff --git a/jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeArea.java b/jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeArea.java index 8283e64c942025c1a7afebfdbe387ffd2b24196d..8951beebd9743b5d7e31f021c7b7f208389bca74 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeArea.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeArea.java @@ -2,6 +2,7 @@ package jadx.gui.ui.codearea; import java.awt.Component; import java.awt.Dimension; +import java.awt.Insets; import java.awt.Point; import java.awt.Rectangle; import java.awt.event.ActionEvent; @@ -396,4 +397,24 @@ public abstract class AbstractCodeArea extends RSyntaxTextArea { LOG.debug("Error on code area dispose", e); } } + + @Override + public Dimension getPreferredSize() { + try { + return super.getPreferredSize(); + } catch (Exception e) { + LOG.warn("Failed to calculate preferred size for code area", e); + // copied from javax.swing.JTextArea.getPreferredSize (super call above) + // as a fallback for returned null size + Dimension d = new Dimension(400, 400); + Insets insets = getInsets(); + if (getColumns() != 0) { + d.width = Math.max(d.width, getColumns() * getColumnWidth() + insets.left + insets.right); + } + if (getRows() != 0) { + d.height = Math.max(d.height, getRows() * getRowHeight() + insets.top + insets.bottom); + } + return d; + } + } }