Skip to content

Commit 695f9ed

Browse files
Fix line and page out of bounds after content update
1 parent fee76b5 commit 695f9ed

2 files changed

Lines changed: 14 additions & 0 deletions

File tree

invui-core/src/main/java/xyz/xenondevs/invui/gui/AbstractPagedGui.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,12 @@ private int correctPage(int page) {
7070
return Math.max(0, Math.min(page, getPageAmount() - 1));
7171
}
7272

73+
private void correctCurrentPage() {
74+
int correctedPage = correctPage(currentPage);
75+
if (correctedPage != currentPage)
76+
setPage(correctedPage);
77+
}
78+
7379
@Override
7480
public boolean hasNextPage() {
7581
return currentPage < getPageAmount() - 1 || infinitePages;
@@ -81,6 +87,7 @@ public boolean hasPreviousPage() {
8187
}
8288

8389
protected void update() {
90+
correctCurrentPage();
8491
updateControlItems();
8592
updatePageContent();
8693
}

invui-core/src/main/java/xyz/xenondevs/invui/gui/AbstractScrollGui.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,12 @@ private int correctLine(int line) {
8080
return Math.max(0, Math.min(line, getMaxLine()));
8181
}
8282

83+
private void correctCurrentLine() {
84+
int correctedLine = correctLine(currentLine);
85+
if (correctedLine != currentLine)
86+
setCurrentLine(correctedLine);
87+
}
88+
8389
@Override
8490
public boolean canScroll(int lines) {
8591
if (lines == 0 || (infiniteLines && lines > 0) || (lines < 0 && getCurrentLine() > 0)) return true;
@@ -104,6 +110,7 @@ public void scroll(int lines) {
104110
}
105111

106112
protected void update() {
113+
correctCurrentLine();
107114
updateControlItems();
108115
updateContent();
109116
}

0 commit comments

Comments
 (0)