refactor(renderer): update scrollbar width constants and improve scroll position handling

This commit is contained in:
extio-de
2026-01-06 12:26:41 +01:00
parent 045a9bbb9d
commit 9cc25c9b25

View File

@@ -25,11 +25,9 @@ import de.extio.game_engine.spatial2.model.MutableCoordI2;
public class ScrollArea implements WindowComponent { public class ScrollArea implements WindowComponent {
private final static Logger LOGGER = LoggerFactory.getLogger(ScrollArea.class); public static final int SCROLLBAR_WIDTH = 20;
protected static final int SCROLLBAR_WIDTH = 20; public static final int SCROLLBAR_WIDTH_WITH_MARGIN = 25;
protected static final int SCROLLBAR_WIDTH_WITH_MARGIN = 25;
protected final RenderingBoPool renderingBoPool; protected final RenderingBoPool renderingBoPool;
@@ -111,8 +109,8 @@ public class ScrollArea implements WindowComponent {
this.contentDimension.setY(Math.max(this.contentDimension.getY(), bo.getLocalY() + boWithDim.getHeight())); this.contentDimension.setY(Math.max(this.contentDimension.getY(), bo.getLocalY() + boWithDim.getHeight()));
} }
} }
final var needsHorizontalScrollbar = this.contentDimension.getX() > this.relativeArea.getDimension().getX(); final var needsHorizontalScrollbar = this.contentDimension.getX() > this.relativeArea.getDimension().getX() - SCROLLBAR_WIDTH_WITH_MARGIN;
final var needsVerticalScrollbar = this.contentDimension.getY() > this.relativeArea.getDimension().getY(); final var needsVerticalScrollbar = this.contentDimension.getY() > this.relativeArea.getDimension().getY() - SCROLLBAR_WIDTH_WITH_MARGIN;
if (needsHorizontalScrollbar || needsVerticalScrollbar) { if (needsHorizontalScrollbar || needsVerticalScrollbar) {
for (final var bo : renderingBos) { for (final var bo : renderingBos) {
@@ -180,8 +178,8 @@ public class ScrollArea implements WindowComponent {
} }
public void setScrollPositionVertical(final double scrollPositionVertical) { public void setScrollPositionVertical(final double scrollPositionVertical) {
// this.scrollPositionVertical = Math.max(0.0, Math.min(1.0, scrollPositionVertical)); this.scrollPositionVertical = Math.max(0.0, Math.min(1.0, scrollPositionVertical));
// this.draw(); this.draw();
} }
public double getScrollPositionHorizontal() { public double getScrollPositionHorizontal() {
@@ -189,8 +187,8 @@ public class ScrollArea implements WindowComponent {
} }
public void setScrollPositionHorizontal(final double scrollPositionHorizontal) { public void setScrollPositionHorizontal(final double scrollPositionHorizontal) {
// this.scrollPositionHorizontal = Math.max(0.0, Math.min(1.0, scrollPositionHorizontal)); this.scrollPositionHorizontal = Math.max(0.0, Math.min(1.0, scrollPositionHorizontal));
// this.draw(); this.draw();
} }
@Override @Override