From 0dde5c3459c5ebfd9e7c9bd3a03a440d5172369c Mon Sep 17 00:00:00 2001 From: serge-rider Date: Mon, 24 Dec 2018 01:38:04 +0300 Subject: [PATCH] Grid column repackage fix --- .../org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java index 4115029125..01d0cbbb06 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java @@ -84,6 +84,9 @@ public abstract class LightGrid extends Canvas { */ private static final int SELECTION_DRAG_BORDER_THRESHOLD = 2; private static final boolean MAXIMIZE_SINGLE_COLUMN = false; + // Indicates that last time refreshData was called grid control was hidden (had zero size) + // In that case columns will be repacked even if keepState is true + private boolean controlWasHidden; public enum EventSource { MOUSE, @@ -488,7 +491,7 @@ public abstract class LightGrid extends Canvas { int savedVSB = keepState ? vScroll.getSelection() : -1; int[] oldWidths = null; - if (keepState) { + if (keepState && !controlWasHidden) { // Save widths oldWidths = new int[columns.size()]; if (!columns.isEmpty()) { @@ -497,6 +500,7 @@ public abstract class LightGrid extends Canvas { } } } + controlWasHidden = getClientArea().height == 0; if (refreshColumns) { this.removeAll(); -- GitLab