@@ -1817,6 +1817,11 @@ public interface Client extends GameShell
|
||||
* Get the item index of the item being dragged on an if1 widget
|
||||
*/
|
||||
int getIf1DraggedItemIndex();
|
||||
|
||||
/**
|
||||
* If a widget is in target mode?
|
||||
*/
|
||||
boolean getSpellSelected();
|
||||
|
||||
/**
|
||||
* Sets if a widget is in target mode
|
||||
|
||||
@@ -33,6 +33,9 @@ import javax.inject.Singleton;
|
||||
@Singleton
|
||||
public class MouseManager
|
||||
{
|
||||
// Button numbers greater than BUTTON3 have no constant identifier
|
||||
private static final int MOUSE_BUTTON_4 = 4;
|
||||
|
||||
private final List<MouseListener> mouseListeners = new CopyOnWriteArrayList<>();
|
||||
private final List<MouseWheelListener> mouseWheelListeners = new CopyOnWriteArrayList<>();
|
||||
|
||||
@@ -74,6 +77,7 @@ public class MouseManager
|
||||
|
||||
public MouseEvent processMousePressed(MouseEvent mouseEvent)
|
||||
{
|
||||
checkExtraMouseButtons(mouseEvent);
|
||||
for (MouseListener mouseListener : mouseListeners)
|
||||
{
|
||||
mouseEvent = mouseListener.mousePressed(mouseEvent);
|
||||
@@ -83,6 +87,7 @@ public class MouseManager
|
||||
|
||||
public MouseEvent processMouseReleased(MouseEvent mouseEvent)
|
||||
{
|
||||
checkExtraMouseButtons(mouseEvent);
|
||||
for (MouseListener mouseListener : mouseListeners)
|
||||
{
|
||||
mouseEvent = mouseListener.mouseReleased(mouseEvent);
|
||||
@@ -92,6 +97,7 @@ public class MouseManager
|
||||
|
||||
public MouseEvent processMouseClicked(MouseEvent mouseEvent)
|
||||
{
|
||||
checkExtraMouseButtons(mouseEvent);
|
||||
for (MouseListener mouseListener : mouseListeners)
|
||||
{
|
||||
mouseEvent = mouseListener.mouseClicked(mouseEvent);
|
||||
@@ -99,6 +105,17 @@ public class MouseManager
|
||||
return mouseEvent;
|
||||
}
|
||||
|
||||
private void checkExtraMouseButtons(MouseEvent mouseEvent)
|
||||
{
|
||||
// Prevent extra mouse buttins from being passed into the client,
|
||||
// as it treats them all as left click
|
||||
int button = mouseEvent.getButton();
|
||||
if (button >= MOUSE_BUTTON_4)
|
||||
{
|
||||
mouseEvent.consume();
|
||||
}
|
||||
}
|
||||
|
||||
public MouseEvent processMouseEntered(MouseEvent mouseEvent)
|
||||
{
|
||||
for (MouseListener mouseListener : mouseListeners)
|
||||
|
||||
@@ -69,4 +69,8 @@ public abstract class Overlay implements LayoutableRenderableEntity
|
||||
{
|
||||
return this.getClass().getSimpleName();
|
||||
}
|
||||
|
||||
public void onMouseOver()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@@ -235,7 +235,7 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener
|
||||
if (!isResizeable)
|
||||
{
|
||||
// On fixed mode, ABOVE_CHATBOX_RIGHT is in the same location as
|
||||
// BOTTOM_RIGHT and CANVAST_TOP_RIGHT is same as TOP_RIGHT.
|
||||
// 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)
|
||||
@@ -316,9 +316,14 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener
|
||||
graphics.setColor(previous);
|
||||
}
|
||||
|
||||
if (menuEntries == null && !client.isMenuOpen() && !client.isSpellSelected() && bounds.contains(mouse))
|
||||
if (!client.isMenuOpen() && !client.getSpellSelected() && bounds.contains(mouse))
|
||||
{
|
||||
menuEntries = createRightClickMenuEntries(overlay);
|
||||
if (menuEntries == null)
|
||||
{
|
||||
menuEntries = createRightClickMenuEntries(overlay);
|
||||
}
|
||||
|
||||
overlay.onMouseOver();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -634,4 +639,4 @@ public class OverlayRenderer extends MouseAdapter implements KeyListener
|
||||
|
||||
return entries;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user