Skip to content

Commit 4db156e

Browse files
committed
fix: update scroll mixin
1 parent db13bbe commit 4db156e

File tree

4 files changed

+18
-5
lines changed

4 files changed

+18
-5
lines changed

src/main/java/dev/chachy/lazylanguageloader/client/mixin/ui/searchbar/MixinEntryListWidget.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@
66
import org.spongepowered.asm.mixin.Unique;
77
import org.spongepowered.asm.mixin.injection.At;
88
import org.spongepowered.asm.mixin.injection.Inject;
9-
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
9+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
1010

1111
@Mixin(EntryListWidget.class)
1212
public class MixinEntryListWidget implements Scrollable {
1313
@Unique
1414
private boolean scrolled;
1515

1616

17-
@Inject(method = "mouseScrolled", at = @At("HEAD"))
18-
private void mouseScrolled(double mouseX, double mouseY, double horizontalAmount, double verticalAmount, CallbackInfoReturnable<Boolean> cir) {
17+
@Inject(method = "scroll", at = @At("HEAD"))
18+
private void scroll(int amount, CallbackInfo ci) {
1919
this.scrolled = true;
2020
}
2121

src/main/java/dev/chachy/lazylanguageloader/client/mixin/ui/searchbar/MixinLanguageOptionsScreen.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import dev.chachy.lazylanguageloader.client.api.scroll.Scrollable;
44
import dev.chachy.lazylanguageloader.client.impl.state.StateManager;
55
import dev.chachy.lazylanguageloader.client.impl.utils.Constants;
6+
import dev.chachy.lazylanguageloader.client.mixin.ui.searchbar.accessor.EntryListWidgetAccessor;
67
import dev.chachy.lazylanguageloader.client.mixin.ui.searchbar.accessor.LanguageEntryAccessor;
78
import net.minecraft.client.gui.screen.Screen;
89
import net.minecraft.client.gui.screen.option.LanguageOptionsScreen;
@@ -79,7 +80,7 @@ protected MixinLanguageOptionsScreen(Text title) {
7980
@Unique
8081
private void lazyLanguageLoader$$fixScroll() {
8182
if (((Scrollable) languageSelectionList).hasScrolled()) {
82-
languageSelectionList.setScrollAmount(languageSelectionList.getScrollAmount());
83+
((EntryListWidgetAccessor) languageSelectionList).invokeScroll((int) languageSelectionList.getScrollY());
8384
} else {
8485
languageSelectionList.centerScrollOn(languageSelectionList.getSelectedOrNull());
8586
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package dev.chachy.lazylanguageloader.client.mixin.ui.searchbar.accessor;
2+
3+
import net.minecraft.client.gui.widget.EntryListWidget;
4+
import org.spongepowered.asm.mixin.Mixin;
5+
import org.spongepowered.asm.mixin.gen.Invoker;
6+
7+
@Mixin(EntryListWidget.class)
8+
public interface EntryListWidgetAccessor {
9+
@Invoker
10+
void invokeScroll(int amount);
11+
}

src/main/resources/lazy-language-loader.mixin.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
"optimizations.splash.MixinMinecraftClient",
1010
"ui.searchbar.MixinEntryListWidget",
1111
"ui.searchbar.MixinLanguageOptionsScreen",
12-
"ui.searchbar.accessor.LanguageEntryAccessor"
12+
"ui.searchbar.accessor.LanguageEntryAccessor",
13+
"ui.searchbar.accessor.EntryListWidgetAccessor"
1314
],
1415
"injectors": {
1516
"defaultRequire": 1

0 commit comments

Comments
 (0)