validCharWidth checks
authoramwaterhouse <Andrew Waterhouse>
Fri, 28 Apr 2006 12:35:12 +0000 (12:35 +0000)
committeramwaterhouse <Andrew Waterhouse>
Fri, 28 Apr 2006 12:35:12 +0000 (12:35 +0000)
src/jalview/gui/SeqPanel.java
src/jalview/gui/SequenceRenderer.java

index d081f16..9d2e84c 100755 (executable)
@@ -597,48 +597,43 @@ public class SeqPanel extends JPanel implements MouseListener,
      */\r
     public void mouseDragged(MouseEvent evt)\r
     {\r
-      if(mouseWheelPressed)\r
+      if (mouseWheelPressed)\r
       {\r
         int oldWidth = av.charWidth;\r
 \r
         //Which is bigger, left-right or up-down?\r
-        if( Math.abs(evt.getY()-lastMousePress.getY())\r
-          > Math.abs(evt.getX()-lastMousePress.getX()))\r
-     {\r
-       int fontSize = av.font.getSize();\r
-\r
-       if (evt.getY() < lastMousePress.getY() && av.charHeight > 1)\r
-       {\r
-         fontSize--;\r
-       }\r
-       else if (evt.getY() > lastMousePress.getY())\r
-       {\r
-         fontSize++;\r
-       }\r
+        if (Math.abs(evt.getY() - lastMousePress.getY())\r
+            > Math.abs(evt.getX() - lastMousePress.getX()))\r
+        {\r
+          int fontSize = av.font.getSize();\r
 \r
-       av.setFont(new Font(av.font.getName(), av.font.getStyle(), fontSize));\r
-       av.charWidth = oldWidth;\r
-       ap.fontChanged();\r
+          if (evt.getY() < lastMousePress.getY() && av.charHeight > 1)\r
+          {\r
+            fontSize--;\r
+          }\r
+          else if (evt.getY() > lastMousePress.getY())\r
+          {\r
+            fontSize++;\r
+          }\r
 \r
+          av.setFont(new Font(av.font.getName(), av.font.getStyle(), fontSize));\r
+          av.charWidth = oldWidth;\r
+          ap.fontChanged();\r
 \r
-     }\r
-     else\r
-     {\r
-       if (evt.getX() < lastMousePress.getX() && av.charWidth > 1)\r
-       {\r
-         av.charWidth--;\r
-       }\r
-       else if (evt.getX() > lastMousePress.getX())\r
-       {\r
-         av.charWidth++;\r
-       }\r
-\r
-       ap.repaint();\r
-     }\r
+        }\r
+        else\r
+        {\r
+          if (evt.getX() < lastMousePress.getX() && av.charWidth > 1)\r
+          {\r
+            av.charWidth--;\r
+          }\r
+          else if (evt.getX() > lastMousePress.getX())\r
+          {\r
+            av.charWidth++;\r
+          }\r
 \r
-      FontMetrics fm = getFontMetrics(av.getFont());\r
-      av.showText = (fm.charWidth('M') < av.charWidth);\r
-               // && fm.getHeight()<av.charHeight\r
+          ap.repaint();\r
+        }\r
 \r
         lastMousePress = evt.getPoint();\r
 \r
index ec93abf..6350fba 100755 (executable)
@@ -41,6 +41,7 @@ public class SequenceRenderer
     Graphics graphics;\r
     boolean monospacedFont;\r
     boolean forOverview = false;\r
+    boolean validCharWidth = true;\r
 \r
     /**\r
      * Creates a new SequenceRenderer object.\r
@@ -62,6 +63,8 @@ public class SequenceRenderer
         graphics = g;\r
         fm = g.getFontMetrics();\r
         monospacedFont = fm.getStringBounds("M",g).getWidth()==fm.getStringBounds("|",g).getWidth();\r
+        validCharWidth = fm.charWidth('M') <= av.charWidth;\r
+\r
         this.renderGaps = renderGaps;\r
     }\r
 \r
@@ -129,7 +132,8 @@ public class SequenceRenderer
 \r
         drawBoxes(seq, start, end, y1);\r
 \r
-        drawText(seq, start, end, y1);\r
+        if (validCharWidth)\r
+          drawText(seq, start, end, y1);\r
     }\r
 \r
     /**\r