Merge pull request #11126 from Alexsuperfly/mouse-tooltips-moving
OverlayRenderer: prevent moving DYNAMIC and TOOLTIP overlays
This commit is contained in:
@@ -213,29 +213,7 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener
|
||||
|
||||
for (Overlay overlay : overlays)
|
||||
{
|
||||
OverlayPosition overlayPosition = overlay.getPosition();
|
||||
|
||||
if (overlay.getPreferredPosition() != null)
|
||||
{
|
||||
overlayPosition = overlay.getPreferredPosition();
|
||||
}
|
||||
|
||||
if (!isResizeable)
|
||||
{
|
||||
// On fixed mode, ABOVE_CHATBOX_RIGHT is in the same location as
|
||||
// BOTTOM_RIGHT and CANVAS_TOP_RIGHT is same as TOP_RIGHT.
|
||||
// Just use BOTTOM_RIGHT and TOP_RIGHT to prevent overlays from
|
||||
// drawing over each other.
|
||||
switch (overlayPosition)
|
||||
{
|
||||
case CANVAS_TOP_RIGHT:
|
||||
overlayPosition = OverlayPosition.TOP_RIGHT;
|
||||
break;
|
||||
case ABOVE_CHATBOX_RIGHT:
|
||||
overlayPosition = OverlayPosition.BOTTOM_RIGHT;
|
||||
break;
|
||||
}
|
||||
}
|
||||
final OverlayPosition overlayPosition = getCorrectedOverlayPosition(overlay);
|
||||
|
||||
if (overlayPosition == OverlayPosition.DYNAMIC || overlayPosition == OverlayPosition.TOOLTIP)
|
||||
{
|
||||
@@ -333,6 +311,13 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener
|
||||
{
|
||||
for (Overlay overlay : overlayManager.getOverlays())
|
||||
{
|
||||
final OverlayPosition overlayPosition = getCorrectedOverlayPosition(overlay);
|
||||
|
||||
if (overlayPosition == OverlayPosition.DYNAMIC || overlayPosition == OverlayPosition.TOOLTIP)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (overlay.getBounds().contains(mousePoint))
|
||||
{
|
||||
if (SwingUtilities.isRightMouseButton(mouseEvent))
|
||||
@@ -512,6 +497,35 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener
|
||||
overlay.getBounds().setSize(dimension);
|
||||
}
|
||||
|
||||
private OverlayPosition getCorrectedOverlayPosition(final Overlay overlay)
|
||||
{
|
||||
OverlayPosition overlayPosition = overlay.getPosition();
|
||||
|
||||
if (overlay.getPreferredPosition() != null)
|
||||
{
|
||||
overlayPosition = overlay.getPreferredPosition();
|
||||
}
|
||||
|
||||
if (!isResizeable)
|
||||
{
|
||||
// On fixed mode, ABOVE_CHATBOX_RIGHT is in the same location as
|
||||
// BOTTOM_RIGHT and CANVAS_TOP_RIGHT is same as TOP_RIGHT.
|
||||
// Just use BOTTOM_RIGHT and TOP_RIGHT to prevent overlays from
|
||||
// drawing over each other.
|
||||
switch (overlayPosition)
|
||||
{
|
||||
case CANVAS_TOP_RIGHT:
|
||||
overlayPosition = OverlayPosition.TOP_RIGHT;
|
||||
break;
|
||||
case ABOVE_CHATBOX_RIGHT:
|
||||
overlayPosition = OverlayPosition.BOTTOM_RIGHT;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return overlayPosition;
|
||||
}
|
||||
|
||||
private boolean shouldInvalidateBounds()
|
||||
{
|
||||
final Widget chatbox = client.getWidget(WidgetInfo.CHATBOX);
|
||||
|
||||
Reference in New Issue
Block a user