runelite-client: always render tooltips on top

Add dedicated overlay position for tooltips to make them on top of all other overlays
This commit is contained in:
Adam
2018-01-03 16:08:56 -05:00
parent 729b4be816
commit 61e9a12b30
4 changed files with 100 additions and 6 deletions

View File

@@ -49,5 +49,9 @@ public enum OverlayPosition
/**
* Place overlay directly above right most area of chatbox possible
*/
ABOVE_CHATBOX_RIGHT;
ABOVE_CHATBOX_RIGHT,
/**
* Tooltip overlay
*/
TOOLTIP;
}

View File

@@ -110,7 +110,7 @@ public class OverlayRenderer
overlays.removeAll(event.getPlugin().getOverlays());
}
sortOverlays();
sortOverlays(overlays);
}
private void refreshPlugins()
@@ -123,10 +123,10 @@ public class OverlayRenderer
.flatMap(plugin -> plugin.getOverlays().stream()),
Stream.of(infoBoxOverlay, tooltipOverlay))
.collect(Collectors.toList()));
sortOverlays();
sortOverlays(overlays);
}
private void sortOverlays()
static void sortOverlays(List<Overlay> overlays)
{
overlays.sort((a, b) ->
{
@@ -235,7 +235,7 @@ public class OverlayRenderer
break;
}
if (overlayPosition.equals(OverlayPosition.DYNAMIC))
if (overlayPosition == OverlayPosition.DYNAMIC || overlayPosition == OverlayPosition.TOOLTIP)
{
safeRender(overlay, graphics, new Point());
}

View File

@@ -44,7 +44,7 @@ public class TooltipOverlay extends Overlay
@Inject
public TooltipOverlay(TooltipManager tooltipManager, Provider<Client> clientProvider)
{
setPosition(OverlayPosition.DYNAMIC);
setPosition(OverlayPosition.TOOLTIP);
setPriority(OverlayPriority.HIGH);
this.tooltipManager = tooltipManager;
this.clientProvider = clientProvider;