From 1fccba9fda84b1f22375c50bafb8af4c1b7fd0bc Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Tue, 7 Apr 2020 21:49:11 +0200 Subject: [PATCH] Reset repositioned tooltip overlays Signed-off-by: Tomas Slusny --- .../java/net/runelite/client/RuneLite.java | 5 ++++ .../ui/overlay/tooltip/TooltipManager.java | 26 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/RuneLite.java b/runelite-client/src/main/java/net/runelite/client/RuneLite.java index 72b6889064..cf1b76b5ae 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLite.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLite.java @@ -73,6 +73,7 @@ import net.runelite.client.ui.overlay.OverlayRenderer; import net.runelite.client.ui.overlay.WidgetOverlay; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; import net.runelite.client.ui.overlay.infobox.InfoBoxOverlay; +import net.runelite.client.ui.overlay.tooltip.TooltipManager; import net.runelite.client.ui.overlay.tooltip.TooltipOverlay; import net.runelite.client.ui.overlay.worldmap.WorldMapOverlay; import net.runelite.client.ws.PartyService; @@ -127,6 +128,9 @@ public class RuneLite @Inject private OverlayManager overlayManager; + @Inject + private TooltipManager tooltipManager; + @Inject private Provider partyService; @@ -336,6 +340,7 @@ public class RuneLite eventBus.register(overlayManager); eventBus.register(drawManager); eventBus.register(infoBoxManager); + eventBus.register(tooltipManager); if (!isOutdated) { diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/tooltip/TooltipManager.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/tooltip/TooltipManager.java index 6472381ec3..9ed020b72b 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/tooltip/TooltipManager.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/tooltip/TooltipManager.java @@ -24,14 +24,27 @@ */ package net.runelite.client.ui.overlay.tooltip; +import com.google.common.base.Strings; import java.util.ArrayList; import java.util.List; +import javax.inject.Inject; import javax.inject.Singleton; import lombok.Getter; +import net.runelite.client.config.ConfigManager; +import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.events.ConfigChanged; @Singleton public class TooltipManager { + private final ConfigManager configManager; + + @Inject + private TooltipManager(final ConfigManager configManager) + { + this.configManager = configManager; + } + @Getter private final List tooltips = new ArrayList<>(); @@ -49,4 +62,17 @@ public class TooltipManager { tooltips.clear(); } + + @Subscribe + public void onConfigChanged(final ConfigChanged event) + { + // Temporary fix for resetting repositioned tooltip overlay + // TODO: Remove this eventually + if (event.getGroup().equals("runelite") && + event.getKey().equals("TooltipOverlay_preferredLocation") && + !Strings.isNullOrEmpty(event.getNewValue())) + { + configManager.unsetConfiguration(event.getGroup(), event.getKey()); + } + } }