From b6db623078fa500dc2cf45b07e0dae3b5b5700f9 Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Sun, 27 Dec 2020 15:03:03 +0100 Subject: [PATCH] Disable right click in context menus --- client/src/main/java/ctbrec/ui/UiUtils.java | 18 ++++++++++++++++++ .../java/ctbrec/ui/tabs/RecordedModelsTab.java | 2 ++ .../java/ctbrec/ui/tabs/RecordingsTab.java | 2 ++ .../java/ctbrec/ui/tabs/ThumbOverviewTab.java | 9 ++++++--- 4 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 client/src/main/java/ctbrec/ui/UiUtils.java diff --git a/client/src/main/java/ctbrec/ui/UiUtils.java b/client/src/main/java/ctbrec/ui/UiUtils.java new file mode 100644 index 00000000..3edeb2ba --- /dev/null +++ b/client/src/main/java/ctbrec/ui/UiUtils.java @@ -0,0 +1,18 @@ +package ctbrec.ui; + +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(); + } + }); + } +} diff --git a/client/src/main/java/ctbrec/ui/tabs/RecordedModelsTab.java b/client/src/main/java/ctbrec/ui/tabs/RecordedModelsTab.java index 6186e7d6..d3baf7b7 100644 --- a/client/src/main/java/ctbrec/ui/tabs/RecordedModelsTab.java +++ b/client/src/main/java/ctbrec/ui/tabs/RecordedModelsTab.java @@ -39,6 +39,7 @@ import ctbrec.ui.DesktopIntegration; import ctbrec.ui.JavaFxModel; import ctbrec.ui.PreviewPopupHandler; import ctbrec.ui.StreamSourceSelectionDialog; +import ctbrec.ui.UiUtils; import ctbrec.ui.action.CheckModelAccountAction; import ctbrec.ui.action.EditNotesAction; import ctbrec.ui.action.FollowAction; @@ -675,6 +676,7 @@ public class RecordedModelsTab extends Tab implements TabSelectionListener { openRecDir.setOnAction(e -> new OpenRecordingsDir(table, selectedModels.get(0)).execute()); ContextMenu menu = new ContextMenu(stop); + UiUtils.disableRightClickFor(menu); if (selectedModels.size() == 1) { menu.getItems().add(selectedModels.get(0).isSuspended() ? resumeRecording : pauseRecording); menu.getItems().add(stopRecordingAt); diff --git a/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java b/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java index e1590439..52330553 100644 --- a/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java +++ b/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java @@ -45,6 +45,7 @@ import ctbrec.ui.DesktopIntegration; import ctbrec.ui.FileDownload; import ctbrec.ui.JavaFxRecording; import ctbrec.ui.Player; +import ctbrec.ui.UiUtils; import ctbrec.ui.action.FollowAction; import ctbrec.ui.action.PauseAction; import ctbrec.ui.action.PlayAction; @@ -392,6 +393,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener { contextMenu.setHideOnEscape(true); contextMenu.setAutoHide(true); contextMenu.setAutoFix(true); + UiUtils.disableRightClickFor(contextMenu); JavaFxRecording first = recordings.get(0); MenuItem openInPlayer = new MenuItem("Open in Player"); diff --git a/client/src/main/java/ctbrec/ui/tabs/ThumbOverviewTab.java b/client/src/main/java/ctbrec/ui/tabs/ThumbOverviewTab.java index bc2458df..ecfcf3de 100644 --- a/client/src/main/java/ctbrec/ui/tabs/ThumbOverviewTab.java +++ b/client/src/main/java/ctbrec/ui/tabs/ThumbOverviewTab.java @@ -38,6 +38,7 @@ import ctbrec.ui.DesktopIntegration; import ctbrec.ui.SiteUiFactory; import ctbrec.ui.TipDialog; import ctbrec.ui.TokenLabel; +import ctbrec.ui.UiUtils; import ctbrec.ui.action.IgnoreModelsAction; import ctbrec.ui.action.OpenRecordingsDir; import ctbrec.ui.action.SetStopDateAction; @@ -463,9 +464,10 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener { openInPlayer.setOnAction(e -> startPlayer(getSelectedThumbCells(cell))); MenuItem start = new MenuItem("Start Recording"); - start.setOnAction(e -> startStopAction(getSelectedThumbCells(cell), true)); + start.setOnAction(e -> startStopAction(e, getSelectedThumbCells(cell), true)); + MenuItem stop = new MenuItem("Stop Recording"); - stop.setOnAction(e -> startStopAction(getSelectedThumbCells(cell), false)); + stop.setOnAction(e -> startStopAction(e, getSelectedThumbCells(cell), false)); MenuItem startStop = recorder.isTracked(cell.getModel()) ? stop : start; MenuItem recordUntil = new MenuItem("Start Recording Until"); @@ -505,6 +507,7 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener { contextMenu.setHideOnEscape(true); contextMenu.setAutoFix(true); contextMenu.getItems().addAll(openInPlayer, new SeparatorMenuItem(), startStop); + UiUtils.disableRightClickFor(contextMenu); if(modelIsTrackedByRecorder) { contextMenu.getItems().add(pauseResume); } else { @@ -688,7 +691,7 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener { return 0; } - private void startStopAction(List selection, boolean start) { + private void startStopAction(ActionEvent e, List selection, boolean start) { for (ThumbCell thumbCell : selection) { thumbCell.startStopAction(start); }