From 670c204e53ca1107b747da96a546293a9bd71e34 Mon Sep 17 00:00:00 2001 From: Jurgen Date: Mon, 23 Mar 2020 16:25:46 +0200 Subject: [PATCH] Fixed focus lost on right click. --- .../fxmisc/richtext/GenericStyledAreaBehavior.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/richtextfx/src/main/java/org/fxmisc/richtext/GenericStyledAreaBehavior.java b/richtextfx/src/main/java/org/fxmisc/richtext/GenericStyledAreaBehavior.java index 794f06e91..5766b1b71 100644 --- a/richtextfx/src/main/java/org/fxmisc/richtext/GenericStyledAreaBehavior.java +++ b/richtextfx/src/main/java/org/fxmisc/richtext/GenericStyledAreaBehavior.java @@ -260,7 +260,7 @@ class GenericStyledAreaBehavior { InputMapTemplate contextMenuEventTemplate = consumeWhen( EventPattern.eventType(ContextMenuEvent.CONTEXT_MENU_REQUESTED), - b -> !b.view.isDisabled() && b.view.isContextMenuPresent(), + b -> !b.view.isDisabled(), GenericStyledAreaBehavior::showContextMenu ); @@ -464,11 +464,13 @@ private void skipToNextWord(SelectionPolicy selectionPolicy) { * ********************************************************************** */ private void showContextMenu(ContextMenuEvent e) { - ContextMenu menu = view.getContextMenu(); - double xOffset = view.getContextMenuXOffset(); - double yOffset = view.getContextMenuYOffset(); - - menu.show(view, e.getScreenX() + xOffset, e.getScreenY() + yOffset); + view.requestFocus(); + if ( view.isContextMenuPresent() ) { + ContextMenu menu = view.getContextMenu(); + double x = e.getScreenX() + view.getContextMenuXOffset(); + double y = e.getScreenY() + view.getContextMenuYOffset(); + menu.show( view, x, y ); + } } private void handleShiftPress(MouseEvent e) {