overlay manager: prevent loading dynamic overlay positions

The overlay renderer tries to never set these, but they can still be set due to conflicting overlay names or from old configs.
This commit is contained in:
Adam
2022-02-07 23:03:09 -05:00
parent c7ce2d82fa
commit 2d52f6d1b4

View File

@@ -40,6 +40,7 @@ import javax.inject.Singleton;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.widgets.WidgetID;
import net.runelite.api.widgets.WidgetItem;
import net.runelite.client.config.ConfigGroup;
@@ -53,6 +54,7 @@ import net.runelite.client.events.PluginChanged;
* Manages state of all game overlays
*/
@Singleton
@Slf4j
public class OverlayManager
{
public static final String OPTION_CONFIGURE = "Configure";
@@ -317,7 +319,18 @@ public class OverlayManager
final Dimension size = loadOverlaySize(overlay);
overlay.setPreferredSize(size);
final OverlayPosition position = loadOverlayPosition(overlay);
overlay.setPreferredPosition(position);
if (position != null)
{
if (overlay.getPosition() != OverlayPosition.DYNAMIC && overlay.getPosition() != OverlayPosition.TOOLTIP)
{
overlay.setPreferredPosition(position);
}
else
{
log.info("Resetting preferred position of dynamic overlay {}", overlay.getClass().getSimpleName());
saveOverlayPosition(overlay);
}
}
}
private void updateOverlayConfig(final Overlay overlay)