Terminal now updates its font when "Text Font" is changed.
diff --git a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalView.java b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalView.java
index 96a4972..ad8d241 100644
--- a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalView.java
+++ b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalView.java
@@ -15,10 +15,12 @@
 import static com.google.eclipse.terminal.local.ui.view.Messages.defaultViewTitle;
 import static com.google.eclipse.terminal.local.util.Platform.userHomeDirectory;
 import static org.eclipse.core.runtime.Path.fromOSString;
+import static org.eclipse.jface.resource.JFaceResources.TEXT_FONT;
 import static org.eclipse.ui.IWorkbenchPage.VIEW_ACTIVATE;
 
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.util.*;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.tm.internal.terminal.control.ITerminalListener;
@@ -39,6 +41,7 @@
   private static final String VIEW_ID = "com.google.eclipse.terminal.local.localTerminalView";
 
   private IPropertyChangeListener colorPreferencesChangeListener;
+  private IPropertyChangeListener textFontChangeListener;
   private IMemento savedState;
   private TerminalWidget terminalWidget;
   private IPath workingDirectory;
@@ -101,11 +104,20 @@
     terminalWidget.setUpGlobalEditActionHandlers(viewSite.getActionBars());
     colorPreferencesChangeListener = new AbstractColorsAndFontsPreferencesChangeListener() {
       @Override protected void onColorChanged() {
-        resetColors();
+        updateColors();
       }
     };
     preferenceStore().addPropertyChangeListener(colorPreferencesChangeListener);
-    resetColors();
+    updateColors();
+    textFontChangeListener = new IPropertyChangeListener() {
+      @Override public void propertyChange(PropertyChangeEvent event) {
+        if (TEXT_FONT.equals(event.getProperty())) {
+          updateFont();
+        }
+      }
+    };
+    JFaceResources.getFontRegistry().addListener(textFontChangeListener);
+    updateFont();
     if (savedState != null) {
       connectUsingSavedState();
       return;
@@ -116,8 +128,12 @@
     }
   }
 
-  private void resetColors() {
-    terminalWidget.resetTerminalColors(background(), foreground());
+  private void updateColors() {
+    terminalWidget.setColors(background(), foreground());
+  }
+
+  private void updateFont() {
+    terminalWidget.setFont(JFaceResources.getTextFont());
   }
 
   private void connectUsingSavedState() {
@@ -151,6 +167,9 @@
     if (colorPreferencesChangeListener != null) {
       preferenceStore().removePropertyChangeListener(colorPreferencesChangeListener);
     }
+    if (textFontChangeListener != null) {
+      JFaceResources.getFontRegistry().removeListener(textFontChangeListener);
+    }
     super.dispose();
   }
 }
diff --git a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalWidget.java b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalWidget.java
index 9157b9f..a9c3a58 100644
--- a/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalWidget.java
+++ b/com.google.eclipse.terminal.local/src/com/google/eclipse/terminal/local/ui/view/TerminalWidget.java
@@ -15,7 +15,7 @@
 import org.eclipse.jface.action.*;
 import org.eclipse.jface.layout.*;
 import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.graphics.*;
 import org.eclipse.swt.widgets.*;
 import org.eclipse.tm.internal.terminal.control.ITerminalListener;
 import org.eclipse.tm.internal.terminal.emulator.VT100TerminalControl;
@@ -128,8 +128,12 @@
     return (LocalTerminalConnector) terminalControl.getTerminalConnector().getAdapter(LocalTerminalConnector.class);
   }
 
-  void resetTerminalColors(RGB background, RGB foreground) {
-    terminalControl.resetColors(background, foreground);
+  void setColors(RGB background, RGB foreground) {
+    terminalControl.setColors(background, foreground);
+  }
+
+  @Override public void setFont(Font font) {
+    terminalControl.setFont(font);
   }
 
   @Override public boolean setFocus() {
diff --git a/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java b/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java
index 817561c..a69e07a 100644
--- a/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java
+++ b/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/emulator/VT100TerminalControl.java
@@ -1047,7 +1047,7 @@
 		fCtlText.setInvertedColors(invert);
 	}
 
-  public void resetColors(RGB background, RGB foreground) {
-    fCtlText.resetColors(background, foreground);
+  public void setColors(RGB background, RGB foreground) {
+    fCtlText.setColors(background, foreground);
   }
 }
diff --git a/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/ILinelRenderer.java b/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/ILinelRenderer.java
index 5c28769..c586f32 100644
--- a/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/ILinelRenderer.java
+++ b/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/ILinelRenderer.java
@@ -23,5 +23,5 @@
 	void onFontChange();
 	void setInvertedColors(boolean invert);
 	Color getDefaultBackgroundColor();
-  void resetColors(RGB background, RGB foreground);
+  void setColors(RGB background, RGB foreground);
 }
diff --git a/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/StyleMap.java b/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/StyleMap.java
index bde87d1..d89bb0a 100644
--- a/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/StyleMap.java
+++ b/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/StyleMap.java
@@ -276,7 +276,7 @@
 		return fOffsets[c];
 	}
 
-	public void resetColors(RGB background, RGB foreground) {
+	public void setColors(RGB background, RGB foreground) {
     this.background = background;
     this.foreground = foreground;
     initColors();
diff --git a/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/TextCanvas.java b/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/TextCanvas.java
index 787b1f6..2074ebd 100644
--- a/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/TextCanvas.java
+++ b/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/TextCanvas.java
@@ -400,8 +400,8 @@
 
 	}
 
-  public void resetColors(RGB background, RGB foreground) {
-    fCellRenderer.resetColors(background, foreground);
+  public void setColors(RGB background, RGB foreground) {
+    fCellRenderer.setColors(background, foreground);
   }
 }
 
diff --git a/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/TextLineRenderer.java b/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/TextLineRenderer.java
index 98336ae..436413c 100644
--- a/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/TextLineRenderer.java
+++ b/com.google.eclipse.tm.terminal/src/org/eclipse/tm/internal/terminal/textcanvas/TextLineRenderer.java
@@ -159,7 +159,7 @@
 
 	}
 
-	@Override public void resetColors(RGB background, RGB foreground) {
-	  fStyleMap.resetColors(background, foreground);
+	@Override public void setColors(RGB background, RGB foreground) {
+	  fStyleMap.setColors(background, foreground);
   }
 }