From 16f137080a162cb2498e7da3621356f0aac6b541 Mon Sep 17 00:00:00 2001 From: Vincent van Beveren Date: Mon, 9 Feb 2026 15:21:23 +0100 Subject: [PATCH] setModified now does not destructively overwrite target in OpenDisplayAction. Made REPLACE default target. --- .../display/actions/OpenDisplayAction.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/app/display/actions/src/main/java/org/csstudio/display/actions/OpenDisplayAction.java b/app/display/actions/src/main/java/org/csstudio/display/actions/OpenDisplayAction.java index 5362d78522..c6a2f6689a 100644 --- a/app/display/actions/src/main/java/org/csstudio/display/actions/OpenDisplayAction.java +++ b/app/display/actions/src/main/java/org/csstudio/display/actions/OpenDisplayAction.java @@ -32,7 +32,8 @@ public class OpenDisplayAction extends ActionInfoBase { /** * Default {@link Target} is new tab. */ - private Target target = Target.TAB; + private Target target = Target.REPLACE; + private Target modifierTarget = null; private Macros macros; @@ -116,7 +117,7 @@ public OpenDisplayAction(final String description, final String file, final Macr } public Target getTarget() { - return target; + return modifierTarget != null ? modifierTarget : target; } public Macros getMacros() { @@ -197,10 +198,14 @@ public void writeToXML(ModelWriter modelWriter, XMLStreamWriter writer) throws E @Override public void setModifiers(final MouseEvent event) { boolean middle_click = event.isMiddleButtonDown(); - if (event.isShortcutDown() || middle_click) { - target = Target.TAB; - } else if (event.isShiftDown()) { - target = Target.WINDOW; + if (event.isShiftDown() && event.isShortcutDown()) { + modifierTarget = Target.REPLACE; + } else if (event.isShortcutDown()) { + modifierTarget = Target.TAB; + } else if (event.isShiftDown() || middle_click) { + modifierTarget = Target.WINDOW; + } else { + modifierTarget = null; } }