Merge branch 'features/JAL-1565_jpred4' into develop
[jalview.git] / src / jalview / appletgui / FontChooser.java
index 4e27db6..48f11b5 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
  */
 package jalview.appletgui;
 
+import jalview.api.ViewStyleI;
 import jalview.util.MessageManager;
 
-import java.awt.*;
-import java.awt.event.*;
+import java.awt.BorderLayout;
+import java.awt.Button;
+import java.awt.Choice;
+import java.awt.Color;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.Frame;
+import java.awt.Label;
+import java.awt.Panel;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
 
 public class FontChooser extends Panel implements ActionListener,
         ItemListener
@@ -34,6 +48,8 @@ public class FontChooser extends Panel implements ActionListener,
 
   Font oldFont;
 
+  int oldCharWidth = 0;
+
   boolean init = true;
 
   Frame frame;
@@ -65,6 +81,7 @@ public class FontChooser extends Panel implements ActionListener,
 
     this.ap = ap;
     oldFont = ap.av.getFont();
+    oldCharWidth = ap.av.getViewStyle().getCharWidth();
     init();
   }
 
@@ -92,7 +109,8 @@ public class FontChooser extends Panel implements ActionListener,
     Frame frame = new Frame();
     this.frame = frame;
     frame.add(this);
-    jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("action.change_font"), 440, 115);
+    jalview.bin.JalviewLite.addFrame(frame,
+            MessageManager.getString("action.change_font"), 440, 115);
 
     init = false;
   }
@@ -143,6 +161,12 @@ public class FontChooser extends Panel implements ActionListener,
     if (ap != null)
     {
       ap.av.setFont(oldFont);
+      ViewStyleI style = ap.av.getViewStyle();
+      if (style.getCharWidth() != oldCharWidth)
+      {
+        style.setCharWidth(oldCharWidth);
+        ap.av.setViewStyle(style);
+      }
       ap.paintAlignment(true);
     }
     else if (tp != null)
@@ -189,7 +213,9 @@ public class FontChooser extends Panel implements ActionListener,
       fontName.select(lastSelected.getName());
       fontStyle.select(lastSelStyle);
       fontSize.select("" + lastSelSize);
-      JVDialog d = new JVDialog(this.frame, MessageManager.getString("label.invalid_font"), true, 350, 200);
+      JVDialog d = new JVDialog(this.frame,
+              MessageManager.getString("label.invalid_font"), true, 350,
+              200);
       Panel mp = new Panel();
       d.cancel.setVisible(false);
       mp.setLayout(new FlowLayout());