Skip to content

Commit 31f8421

Browse files
committed
Prevent show/hide children via mouse from scrolling mod list. (#933)
- Don't scroll when show/hide children (Resolves #911)
1 parent 20e606c commit 31f8421

2 files changed

Lines changed: 7 additions & 2 deletions

File tree

src/main/java/com/terraformersmc/modmenu/gui/widget/ModListWidget.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ private boolean hasVisibleChildMods(Mod parent) {
158158
return !children.stream().allMatch(child -> child.isHidden() || hideLibraries && child.getBadges().contains(Mod.Badge.LIBRARY));
159159
}
160160

161-
private void filter(String searchTerm, boolean refresh, boolean search) {
161+
public void filter(String searchTerm, boolean refresh, boolean reposition) {
162162
this.clearEntries();
163163
addedMods.clear();
164164
Collection<Mod> mods = ModMenu.MODS.values().stream().filter(mod -> {
@@ -208,6 +208,11 @@ private void filter(String searchTerm, boolean refresh, boolean search) {
208208
}
209209
}
210210

211+
if (!reposition) {
212+
// This generally leaves the same mod selected, but no mod highlighted, and the scrolling is unmodified.
213+
return;
214+
}
215+
211216
if (parent.getSelectedEntry() != null && !children().isEmpty() || this.getSelectedOrNull() != null && getSelectedOrNull().getMod() != parent.getSelectedEntry().getMod()) {
212217
for (ModListEntry entry : children()) {
213218
if (entry.getMod().equals(parent.getSelectedEntry().getMod())) {

src/main/java/com/terraformersmc/modmenu/gui/widget/entries/ParentEntry.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ private void toggleChildren() {
146146
list.getParent().showModChildren.add(id);
147147
}
148148

149-
list.filter(list.getParent().getSearchInput(), false);
149+
list.filter(list.getParent().getSearchInput(), false, false);
150150
}
151151

152152
@Override

0 commit comments

Comments
 (0)