Font oldFont;
/*
+ * The font on opening the dialog (to be restored on Cancel)
+ * on the other half of a split frame (if applicable)
+ */
+ Font oldComplementFont;
+
+ /*
* the state of 'scale protein as cDNA' on opening the dialog
*/
boolean oldProteinScale;
boolean inSplitFrame = ap.av.getCodingComplement() != null;
if (inSplitFrame)
{
+ oldComplementFont = ((AlignViewport) ap.av.getCodingComplement())
+ .getFont();
scaleAsCdna.setVisible(true);
scaleAsCdna.setSelected(ap.av.isScaleProteinAsCdna());
fontAsCdna.setVisible(true);
{
ap.av.getCodingComplement().setScaleProteinAsCdna(oldProteinScale);
ap.av.getCodingComplement().setProteinFontAsCdna(oldMirrorFont);
- ap.av.getCodingComplement().setFont(oldFont, true);
+ ap.av.getCodingComplement().setFont(oldComplementFont, true);
}
}
else if (tp != null)
*/
ap.av.getCodingComplement().setFont(newFont, true);
}
- if (fontAsCdna.isSelected() || scaleAsCdna.isSelected())
- {
- /*
- * adjust layout for font change and/or sizing
- */
- SplitFrame splitFrame = (SplitFrame) ap.alignFrame
- .getSplitViewContainer();
- splitFrame.repaint();
- }
+
+ /*
+ * adjust layout for font change / reset / sizing
+ */
+ SplitFrame splitFrame = (SplitFrame) ap.alignFrame
+ .getSplitViewContainer();
+ splitFrame.repaint();
}
}
/**
* Turn on/off mirroring of font across split frame. If turning on, also
- * copies the current font across the split frame. If turning off, does not
- * change fonts.
+ * copies the current font across the split frame. If turning off, restores
+ * the other half of the split frame to its initial font.
*/
@Override
protected void mirrorFonts_actionPerformed()
ap.av.setProteinFontAsCdna(selected);
ap.av.getCodingComplement().setProteinFontAsCdna(selected);
- if (selected)
+ /*
+ * reset other half of split frame if turning option off
+ */
+ if (!selected)
{
- changeFont();
+ ap.av.getCodingComplement().setFont(oldComplementFont, true);
}
+
+ changeFont();
}
}