diff options
Diffstat (limited to 'runtime/src/main/java')
2 files changed, 29 insertions, 16 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayEntry.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayEntry.java index e21d81e3f..b7540c87a 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayEntry.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayEntry.java @@ -160,13 +160,26 @@ public class DisplayEntry extends WidgetWithBounds { if (result.hasApplicable) { plusButton.setText(new TextComponent("+")); plusButton.render(poses, Math.round(mouse.x()), Math.round(mouse.y()), delta); + poses.popPose(); if (plusButton.containsMouse(Math.round(mouse.x()), Math.round(mouse.y()))) { result.tooltipRenderer.accept(new Point(mouseX, mouseY), Tooltip::queue); + + if (result.renderer != null) { + poses.pushPose(); + if (!stable || !target.equals(bounds)) { + poses.translate(0, 0, 600); + } + poses.translate(xOffset(), yOffset(), 0); + poses.scale(xScale(), yScale(), 1.0F); + + result.renderer.render(poses, mouseX, mouseY, delta, widgets.get(), getBounds(), display); + poses.popPose(); + } } + } else { + poses.popPose(); } - - poses.popPose(); } } @@ -211,7 +224,7 @@ public class DisplayEntry extends WidgetWithBounds { @Override public boolean keyPressed(int keyCode, int scanCode, int modifiers) { try { - Widget.translateMouse(xOffset, 0, 0); + Widget.pushMouse(new Point(transformMouseX(mouse().x), transformMouseY(mouse().y))); for (Widget widget : widgets.get()) { if (widget.keyPressed(keyCode, scanCode, modifiers)) { return true; diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryWidget.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryWidget.java index b6cd9fb01..6aaf55ba3 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryWidget.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/favorites/history/DisplayHistoryWidget.java @@ -254,7 +254,7 @@ public class DisplayHistoryWidget extends WidgetWithBounds implements DraggableC scroll.setTo(scroll.target() + ClothConfigInitializer.getScrollStep() * -2 * amount, ClothConfigInitializer.getScrollDuration()); return true; } - + for (DisplayEntry entry : entries) { if (entry.mouseScrolled(mouseX, mouseY, amount)) { return true; @@ -277,6 +277,12 @@ public class DisplayHistoryWidget extends WidgetWithBounds implements DraggableC @Override public boolean mouseReleased(double mouseX, double mouseY, int button) { + for (DisplayEntry entry : entries) { + if (entry.mouseReleased(mouseX, mouseY, button)) { + return true; + } + } + if (ConfigObject.getInstance().getFavoriteKeyCode().matchesMouse(button)) { Point mouse = PointHelper.ofMouse(); @@ -296,18 +302,18 @@ public class DisplayHistoryWidget extends WidgetWithBounds implements DraggableC } } } - - for (DisplayEntry entry : entries) { - if (entry.mouseReleased(mouseX, mouseY, button)) { - return true; - } - } return super.mouseReleased(mouseX, mouseY, button); } @Override public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + for (DisplayEntry entry : entries) { + if (entry.keyPressed(keyCode, scanCode, modifiers)) { + return true; + } + } + if (ConfigObject.getInstance().getFavoriteKeyCode().matchesKey(keyCode, scanCode)) { Point mouse = PointHelper.ofMouse(); @@ -327,12 +333,6 @@ public class DisplayHistoryWidget extends WidgetWithBounds implements DraggableC } } } - - for (DisplayEntry entry : entries) { - if (entry.keyPressed(keyCode, scanCode, modifiers)) { - return true; - } - } return super.keyPressed(keyCode, scanCode, modifiers); } |
