|
@@ -20,9 +20,10 @@ import javafx.beans.property.SimpleBooleanProperty;
|
|
|
import javafx.beans.value.ObservableValue;
|
|
|
import javafx.collections.ListChangeListener;
|
|
|
import javafx.collections.ObservableList;
|
|
|
-import javafx.event.Event;
|
|
|
import javafx.fxml.FXML;
|
|
|
+import javafx.geometry.Side;
|
|
|
import javafx.scene.control.Button;
|
|
|
+import javafx.scene.control.ContextMenu;
|
|
|
import javafx.scene.control.ListView;
|
|
|
import javafx.scene.input.ContextMenuEvent;
|
|
|
import javafx.scene.input.DragEvent;
|
|
@@ -67,6 +68,8 @@ public class VaultListController implements FxController {
|
|
|
public ListView<Vault> vaultList;
|
|
|
public StackPane root;
|
|
|
public Button addVaultBtn;
|
|
|
+ @FXML
|
|
|
+ private ContextMenu addVaultContextMenu;
|
|
|
|
|
|
@Inject
|
|
|
VaultListController(@MainWindow Stage mainWindow, //
|
|
@@ -140,15 +143,15 @@ public class VaultListController implements FxController {
|
|
|
root.setOnDragOver(this::handleDragEvent);
|
|
|
root.setOnDragDropped(this::handleDragEvent);
|
|
|
root.setOnDragExited(this::handleDragEvent);
|
|
|
-
|
|
|
- addVaultBtn.addEventFilter(ContextMenuEvent.CONTEXT_MENU_REQUESTED, Event::consume);
|
|
|
}
|
|
|
|
|
|
@FXML
|
|
|
- private void showMenu() {
|
|
|
- double screenX = addVaultBtn.localToScreen(addVaultBtn.getBoundsInLocal()).getMinX();
|
|
|
- double screenY = addVaultBtn.localToScreen(addVaultBtn.getBoundsInLocal()).getMaxY();
|
|
|
- addVaultBtn.getContextMenu().show(addVaultBtn, screenX, screenY);
|
|
|
+ private void toggleMenu() {
|
|
|
+ if (addVaultContextMenu.isShowing()) {
|
|
|
+ addVaultContextMenu.hide();
|
|
|
+ } else {
|
|
|
+ addVaultContextMenu.show(addVaultBtn, Side.BOTTOM, 0.0, 0.0);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void deselect(MouseEvent released) {
|