From ddcd4a03b89bd65879458edeeb3ea9d29f71187b Mon Sep 17 00:00:00 2001 From: Radek Davidek Date: Tue, 19 May 2026 10:23:05 +0200 Subject: [PATCH] UI fixed brief mode --- src/main/java/cz/kamma/kfmanager/ui/FilePanelTab.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/cz/kamma/kfmanager/ui/FilePanelTab.java b/src/main/java/cz/kamma/kfmanager/ui/FilePanelTab.java index d1bff22..13c4eb5 100644 --- a/src/main/java/cz/kamma/kfmanager/ui/FilePanelTab.java +++ b/src/main/java/cz/kamma/kfmanager/ui/FilePanelTab.java @@ -1464,7 +1464,8 @@ public class FilePanelTab extends JPanel { } private void scrollBriefCellToColumnStart(int row, int column) { - if (fileTable == null || viewMode != ViewMode.BRIEF || row < 0 || column < 0) { + if (fileTable == null || viewMode != ViewMode.BRIEF || row < 0 || column < 0 + || column >= fileTable.getColumnModel().getColumnCount()) { return; } @@ -1478,7 +1479,10 @@ public class FilePanelTab extends JPanel { int maxY = Math.max(0, viewHeight - viewport.getHeight()); Point position = viewport.getViewPosition(); - int targetX = Math.max(0, Math.min(cell.x, maxX)); + Rectangle visible = viewport.getViewRect(); + int columnWidth = fileTable.getColumnModel().getColumn(column).getWidth(); + boolean wholeColumnVisible = cell.x >= visible.x && cell.x + columnWidth <= visible.x + visible.width; + int targetX = wholeColumnVisible ? position.x : Math.max(0, Math.min(cell.x, maxX)); int targetY = position.y; if (cell.y < position.y) { targetY = cell.y;