X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FDesktop.java;fp=src%2Fjalview%2Fgui%2FDesktop.java;h=ed9ed504c9cb312e17688761266f7bcb0ceb2ffa;hb=1b378087ec2d5be9b290cd63c45bfdb9e75269fb;hp=22280ede00c83a0db953d5ae95c3e5a0e6fdc93c;hpb=d43b22658a3041c6c5c28c0db3d52c648dcf92e9;p=jalview.git diff --git a/src/jalview/gui/Desktop.java b/src/jalview/gui/Desktop.java index 22280ed..ed9ed50 100644 --- a/src/jalview/gui/Desktop.java +++ b/src/jalview/gui/Desktop.java @@ -1935,7 +1935,9 @@ public class Desktop extends jalview.jbgui.GDesktop // transfer reference for existing feature settings to new alignFrame if (ap == af.alignPanel) { - newaf.featureSettings = viewFeatureSettings; + newaf.featureSettings = (viewFeatureSettings.fr.ap == ap) + ? viewFeatureSettings + : null; newaf.setFeatureSettingsGeometry(fsBounds); } @@ -1954,6 +1956,14 @@ public class Desktop extends jalview.jbgui.GDesktop addInternalFrame(newaf, af.getTitle(), AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT); + // and materialise a new feature settings dialog instance for the new alignframe + // (closes the old as if 'OK' was pressed) + if (ap == af.alignPanel && newaf.featureSettings != null + && newaf.featureSettings.isOpen() + && af.alignPanel.getAlignViewport().isShowSequenceFeatures()) + { + newaf.showFeatureSettingsUI(); + } } af.alignPanels.clear(); @@ -1995,7 +2005,7 @@ public class Desktop extends jalview.jbgui.GDesktop if (gatherThis) { - if (af.featureSettings != null) + if (af.featureSettings != null && af.featureSettings.isOpen()) { if (source.featureSettings == null) { @@ -2015,6 +2025,12 @@ public class Desktop extends jalview.jbgui.GDesktop } } } + // refresh the feature setting UI for the source frame if it exists + if (source.featureSettings != null + && source.featureSettings.isOpen()) + { + source.showFeatureSettingsUI(); + } }