jafea7-ctbrec-v5.3.2-based/client/src/main/java/ctbrec/ui/UiUtils.java

34 lines
1.1 KiB
Java

package ctbrec.ui;
import javafx.geometry.Bounds;
import javafx.scene.Node;
import javafx.scene.control.ContextMenu;
import javafx.scene.input.MouseButton;
import javafx.scene.input.MouseEvent;
public class UiUtils {
private UiUtils() {}
public static void disableRightClickFor(ContextMenu menu) {
menu.addEventFilter(MouseEvent.MOUSE_RELEASED, event -> {
if (event.getButton() == MouseButton.SECONDARY) {
event.consume();
}
});
}
public static void ignoreMouseReleasedIfMouseExited(ContextMenu menu) {
menu.addEventFilter(MouseEvent.MOUSE_RELEASED, evt -> {
if (evt.getTarget() instanceof Node) {
Node target = (Node) evt.getTarget();
Bounds screenBounds = target.localToScreen(target.getBoundsInLocal());
boolean releasedOnOriginalMouseItem = screenBounds.contains(evt.getScreenX(), evt.getScreenY());
if (!releasedOnOriginalMouseItem) {
evt.consume();
}
}
});
}
}