[orca] Fix for Bug 652241 - Magnification settings should be controlled by gnome-shell mag/Universal Access



commit 91e67695a6a3b97eeec762d49f36c392098182ea
Author: Joanmarie Diggs <joanmarie diggs gmail com>
Date:   Sun Jun 12 17:30:39 2011 -0400

    Fix for Bug 652241 - Magnification settings should be controlled by gnome-shell mag/Universal Access tools; not by Orca

 src/orca/Makefile.am                    |    1 -
 src/orca/gsmag.py                       |  102 +--
 src/orca/mag.py                         |   18 -
 src/orca/orca-advanced-magnification.ui | 1033 ----------------
 src/orca/orca-setup.ui                  | 1442 ----------------------
 src/orca/orca.py                        |    2 +-
 src/orca/orca_gui_prefs.py              | 2051 ++-----------------------------
 src/orca/orca_prefs.py                  |  183 +---
 src/orca/settings.py                    |   50 -
 src/orca/settings_manager.py            |    2 +-
 10 files changed, 139 insertions(+), 4745 deletions(-)
---
diff --git a/src/orca/Makefile.am b/src/orca/Makefile.am
index 8b3b501..d950e2a 100644
--- a/src/orca/Makefile.am
+++ b/src/orca/Makefile.am
@@ -81,7 +81,6 @@ SUBDIRS = \
         backends
 
 ui_DATA = \
-	orca-advanced-magnification.ui \
 	orca-find.ui \
 	orca-mainwin.ui \
 	orca-preferences-warning.ui \
diff --git a/src/orca/gsmag.py b/src/orca/gsmag.py
index 95c63d1..b8420bc 100644
--- a/src/orca/gsmag.py
+++ b/src/orca/gsmag.py
@@ -59,11 +59,6 @@ _gconfClient = gconf.client_get_default()
 #
 _isActive = False
 
-# Whether or not we're in the process of making "live update" changes
-# to the location of the magnifier.
-#
-_liveUpdatingMagnifier = False
-
 # The current modes of tracking, for use with "live update" changes.
 #
 _controlTracking = None
@@ -266,100 +261,6 @@ def magnifyAccessible(event, obj, extents=None):
 
 ########################################################################
 #                                                                      #
-# Methods for updating live tracking settings                          #
-#                                                                      #
-########################################################################
-
-def updateControlTracking(newMode):
-    """Updates the control tracking mode.
-
-    Arguments:
-    -newMode: The new mode to use.
-    """
-    global _controlTracking
-    _controlTracking = newMode
-    
-def updateEdgeMargin(amount):
-    """Updates the edge margin
-
-    Arguments:
-    -amount: The new margin to use, in pixels.
-    """
-    global _edgeMargin
-    _edgeMargin = amount
-
-def updateMouseTracking(newMode):
-    """Updates the mouse tracking mode.
-
-    Arguments:
-    -newMode: The new mode to use.
-    """
-    global _mouseTracking
-    _mouseTracking = newMode
-
-    # Comparing Orca and GS-mag, modes are the same, but different values:
-    # Orca:  centered=0, proportional=1, push=2, none=3
-    # GS-mag: none=0, centered=1, push=2, proportional=3
-    # Use Orca's values as index into following array (hack).
-    #
-    gsMagModes = \
-        [GS_MAG_CENTERED, GS_MAG_PROPORTIONAL, GS_MAG_PUSH, GS_MAG_NONE]
-    _gconfClient.set_int(MOUSE_MODE_KEY, gsMagModes[newMode])
-
-def updatePointerFollowsFocus(enabled):
-    """Updates the pointer follows focus setting.
-
-    Arguments:
-    -enabled: whether or not pointer follows focus should be enabled.
-    """
-    global _pointerFollowsFocus
-    _pointerFollowsFocus = enabled
-
-def updatePointerFollowsZoomer(enabled):
-    """Updates the pointer follows zoomer setting.
-
-    Arguments:
-    -enabled: whether or not pointer follows zoomer should be enabled.
-    """
-    global _pointerFollowsZoomer
-    _pointerFollowsZoomer = enabled
-
-def updateTextTracking(newMode):
-    """Updates the text tracking mode.
-
-    Arguments:
-    -newMode: The new mode to use.
-    """
-    global _textTracking
-    _textTracking = newMode
-
-def finishLiveUpdating():
-    """Restores things that were altered via a live update."""
-
-    global _liveUpdatingMagnifier
-    global _controlTracking
-    global _edgeMargin
-    global _mouseTracking
-    global _pointerFollowsFocus
-    global _pointerFollowsZoomer
-    global _textTracking
-
-    _liveUpdatingMagnifier = False
-    _mouseTracking = settings.magMouseTrackingMode
-    _controlTracking = settings.magControlTrackingMode
-    _textTracking = settings.magTextTrackingMode
-    _edgeMargin = settings.magEdgeMargin
-    _pointerFollowsFocus = settings.magPointerFollowsFocus
-    _pointerFollowsZoomer = settings.magPointerFollowsZoomer
-
-    if settings.enableMagnifier:
-        setupMagnifier(settings.magZoomerType)
-        init()
-    else:
-        shutdown()
-
-########################################################################
-#                                                                      #
 # Methods for updating appearance settings                             #
 #                                                                      #
 ########################################################################
@@ -554,8 +455,7 @@ def setupMagnifier(position, left=None, top=None, right=None, bottom=None,
     - bottom:   the top edge of the zoomer (only applicable for custom)
     - restore:  a dictionary of all of the settings that should be restored
     """
-    global _liveUpdatingMagnifier
-    _liveUpdatingMagnifier = True
+
     __setupMagnifier(position, restore)
     __setupZoomer(position, left, top, right, bottom, restore)
 
diff --git a/src/orca/mag.py b/src/orca/mag.py
index a13d26f..aec8e7c 100644
--- a/src/orca/mag.py
+++ b/src/orca/mag.py
@@ -94,23 +94,5 @@ def isFullScreenCapable():
 def isFilteringCapable():
     return False
 
-def updateMouseTracking(newMode):
-    pass
-
-def updateControlTracking(newMode):
-    pass
 
-def updateTextTracking(newMode):
-    pass
-
-def updateEdgeMargin(amount):
-    pass
 
-def updatePointerFollowsFocus(enabled):
-    pass
-
-def updatePointerFollowsZoomer(enabled):
-    pass
-
-def finishLiveUpdating():
-    pass
diff --git a/src/orca/orca-setup.ui b/src/orca/orca-setup.ui
index a521b3c..93e018f 100644
--- a/src/orca/orca-setup.ui
+++ b/src/orca/orca-setup.ui
@@ -2315,1448 +2315,6 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkVBox" id="vbox19">
-                    <property name="visible">True</property>
-                    <property name="border_width">12</property>
-                    <child>
-                      <object class="GtkCheckButton" id="magnifierSupportCheckButton">
-                        <property name="label" translatable="yes">Enable _magnifier</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="draw_indicator">True</property>
-                        <signal name="toggled" handler="magnifierSupportChecked"/>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkTable" id="magnifierTable">
-                        <property name="visible">True</property>
-                        <property name="border_width">12</property>
-                        <property name="n_rows">3</property>
-                        <property name="n_columns">4</property>
-                        <property name="column_spacing">25</property>
-                        <property name="row_spacing">10</property>
-                        <child>
-                          <object class="GtkAlignment" id="magZoomerAlignment">
-                            <property name="visible">True</property>
-                            <child>
-                              <object class="GtkFrame" id="magZoomerSettingsFrame">
-                                <property name="visible">True</property>
-                                <property name="label_xalign">0</property>
-                                <property name="shadow_type">none</property>
-                                <child>
-                                  <object class="GtkAlignment" id="alignment41">
-                                    <property name="visible">True</property>
-                                    <property name="left_padding">12</property>
-                                    <child>
-                                      <object class="GtkTable" id="table5">
-                                        <property name="visible">True</property>
-                                        <property name="border_width">6</property>
-                                        <property name="n_rows">3</property>
-                                        <property name="n_columns">3</property>
-                                        <property name="column_spacing">3</property>
-                                        <property name="row_spacing">3</property>
-                                        <child>
-                                          <object class="GtkLabel" id="magZoomFactorLabel">
-                                            <property name="visible">True</property>
-                                            <property name="xalign">0</property>
-                                            <property name="label" translatable="yes">Scale _factor:</property>
-                                            <property name="use_underline">True</property>
-                                            <property name="mnemonic_widget">magZoomFactorSpinButton</property>
-                                            <accessibility>
-                                              <relation type="label-for" target="magZoomFactorSpinButton"/>
-                                            </accessibility>
-                                          </object>
-                                          <packing>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkSpinButton" id="magZoomFactorSpinButton">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="adjustment">adjustment5</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="digits">2</property>
-                                            <property name="numeric">True</property>
-                                            <accessibility>
-                                              <relation type="labelled-by" target="magZoomFactorLabel"/>
-                                            </accessibility>
-                                            <signal name="value_changed" handler="magZoomFactorValueChanged"/>
-                                          </object>
-                                          <packing>
-                                            <property name="left_attach">1</property>
-                                            <property name="right_attach">2</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkAlignment" id="alignment61">
-                                            <property name="visible">True</property>
-                                            <property name="left_padding">25</property>
-                                            <child>
-                                              <object class="GtkTable" id="magZoomerCustomPositionTable">
-                                                <property name="visible">True</property>
-                                                <property name="border_width">3</property>
-                                                <property name="n_rows">3</property>
-                                                <property name="n_columns">2</property>
-                                                <property name="column_spacing">3</property>
-                                                <property name="row_spacing">3</property>
-                                                <child>
-                                                  <object class="GtkHBox" id="hbox23">
-                                                    <property name="visible">True</property>
-                                                    <child>
-                                                      <object class="GtkLabel" id="magZoomerTopLabel">
-                                                        <property name="visible">True</property>
-                                                        <property name="label" translatable="yes">_Top:</property>
-                                                        <property name="use_underline">True</property>
-                                                        <property name="mnemonic_widget">magZoomerTopSpinButton</property>
-                                                        <accessibility>
-                                                          <relation type="label-for" target="magZoomerTopSpinButton"/>
-                                                        </accessibility>
-                                                      </object>
-                                                      <packing>
-                                                        <property name="expand">False</property>
-                                                        <property name="fill">False</property>
-                                                        <property name="padding">3</property>
-                                                        <property name="position">0</property>
-                                                      </packing>
-                                                    </child>
-                                                    <child>
-                                                      <object class="GtkSpinButton" id="magZoomerTopSpinButton">
-                                                        <property name="visible">True</property>
-                                                        <property name="can_focus">True</property>
-                                                        <property name="adjustment">adjustment6</property>
-                                                        <property name="climb_rate">1</property>
-                                                        <property name="numeric">True</property>
-                                                        <accessibility>
-                                                          <relation type="labelled-by" target="magZoomerTopLabel"/>
-                                                        </accessibility>
-                                                        <signal name="value_changed" handler="magZoomerTopValueChanged"/>
-                                                      </object>
-                                                      <packing>
-                                                        <property name="expand">False</property>
-                                                        <property name="fill">False</property>
-                                                        <property name="pack_type">end</property>
-                                                        <property name="position">1</property>
-                                                      </packing>
-                                                    </child>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="right_attach">2</property>
-                                                    <property name="x_options"></property>
-                                                  </packing>
-                                                </child>
-                                                <child>
-                                                  <object class="GtkHBox" id="hbox24">
-                                                    <property name="visible">True</property>
-                                                    <child>
-                                                      <object class="GtkLabel" id="magZoomerBottomLabel">
-                                                        <property name="visible">True</property>
-                                                        <property name="label" translatable="yes">_Bottom:</property>
-                                                        <property name="use_underline">True</property>
-                                                        <property name="mnemonic_widget">magZoomerBottomSpinButton</property>
-                                                        <accessibility>
-                                                          <relation type="label-for" target="magZoomerBottomSpinButton"/>
-                                                        </accessibility>
-                                                      </object>
-                                                      <packing>
-                                                        <property name="expand">False</property>
-                                                        <property name="fill">False</property>
-                                                        <property name="padding">3</property>
-                                                        <property name="position">0</property>
-                                                      </packing>
-                                                    </child>
-                                                    <child>
-                                                      <object class="GtkSpinButton" id="magZoomerBottomSpinButton">
-                                                        <property name="visible">True</property>
-                                                        <property name="can_focus">True</property>
-                                                        <property name="adjustment">adjustment7</property>
-                                                        <property name="climb_rate">1</property>
-                                                        <property name="numeric">True</property>
-                                                        <accessibility>
-                                                          <relation type="labelled-by" target="magZoomerBottomLabel"/>
-                                                        </accessibility>
-                                                        <signal name="value_changed" handler="magZoomerBottomValueChanged"/>
-                                                      </object>
-                                                      <packing>
-                                                        <property name="expand">False</property>
-                                                        <property name="fill">False</property>
-                                                        <property name="position">1</property>
-                                                      </packing>
-                                                    </child>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="right_attach">2</property>
-                                                    <property name="top_attach">2</property>
-                                                    <property name="bottom_attach">3</property>
-                                                    <property name="x_options"></property>
-                                                  </packing>
-                                                </child>
-                                                <child>
-                                                  <object class="GtkHBox" id="hbox25">
-                                                    <property name="visible">True</property>
-                                                    <child>
-                                                      <object class="GtkLabel" id="magZoomerRightLabel">
-                                                        <property name="visible">True</property>
-                                                        <property name="label" translatable="yes">_Right:</property>
-                                                        <property name="use_underline">True</property>
-                                                        <property name="mnemonic_widget">magZoomerRightSpinButton</property>
-                                                        <accessibility>
-                                                          <relation type="label-for" target="magZoomerRightSpinButton"/>
-                                                        </accessibility>
-                                                      </object>
-                                                      <packing>
-                                                        <property name="expand">False</property>
-                                                        <property name="fill">False</property>
-                                                        <property name="padding">4</property>
-                                                        <property name="position">0</property>
-                                                      </packing>
-                                                    </child>
-                                                    <child>
-                                                      <object class="GtkSpinButton" id="magZoomerRightSpinButton">
-                                                        <property name="visible">True</property>
-                                                        <property name="can_focus">True</property>
-                                                        <property name="adjustment">adjustment8</property>
-                                                        <property name="climb_rate">1</property>
-                                                        <property name="numeric">True</property>
-                                                        <accessibility>
-                                                          <relation type="labelled-by" target="magZoomerRightLabel"/>
-                                                        </accessibility>
-                                                        <signal name="value_changed" handler="magZoomerRightValueChanged"/>
-                                                      </object>
-                                                      <packing>
-                                                        <property name="expand">False</property>
-                                                        <property name="fill">False</property>
-                                                        <property name="position">1</property>
-                                                      </packing>
-                                                    </child>
-                                                    <child>
-                                                      <object class="GtkFixed" id="fixed2">
-                                                        <property name="visible">True</property>
-                                                      </object>
-                                                      <packing>
-                                                        <property name="pack_type">end</property>
-                                                        <property name="position">2</property>
-                                                      </packing>
-                                                    </child>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="left_attach">1</property>
-                                                    <property name="right_attach">2</property>
-                                                    <property name="top_attach">1</property>
-                                                    <property name="bottom_attach">2</property>
-                                                    <property name="x_options"></property>
-                                                    <property name="y_options">GTK_FILL</property>
-                                                  </packing>
-                                                </child>
-                                                <child>
-                                                  <object class="GtkHBox" id="hbox22">
-                                                    <property name="visible">True</property>
-                                                    <child>
-                                                      <object class="GtkFixed" id="fixed1">
-                                                        <property name="visible">True</property>
-                                                      </object>
-                                                      <packing>
-                                                        <property name="position">0</property>
-                                                      </packing>
-                                                    </child>
-                                                    <child>
-                                                      <object class="GtkLabel" id="magZoomerLeftLabel">
-                                                        <property name="visible">True</property>
-                                                        <property name="label" translatable="yes">_Left:</property>
-                                                        <property name="use_underline">True</property>
-                                                        <property name="justify">right</property>
-                                                        <property name="mnemonic_widget">magZoomerLeftSpinButton</property>
-                                                        <accessibility>
-                                                          <relation type="label-for" target="magZoomerLeftSpinButton"/>
-                                                        </accessibility>
-                                                      </object>
-                                                      <packing>
-                                                        <property name="expand">False</property>
-                                                        <property name="padding">3</property>
-                                                        <property name="position">1</property>
-                                                      </packing>
-                                                    </child>
-                                                    <child>
-                                                      <object class="GtkSpinButton" id="magZoomerLeftSpinButton">
-                                                        <property name="visible">True</property>
-                                                        <property name="can_focus">True</property>
-                                                        <property name="adjustment">adjustment9</property>
-                                                        <property name="climb_rate">1</property>
-                                                        <property name="numeric">True</property>
-                                                        <accessibility>
-                                                          <relation type="labelled-by" target="magZoomerLeftLabel"/>
-                                                        </accessibility>
-                                                        <signal name="value_changed" handler="magZoomerLeftValueChanged"/>
-                                                      </object>
-                                                      <packing>
-                                                        <property name="expand">False</property>
-                                                        <property name="fill">False</property>
-                                                        <property name="position">2</property>
-                                                      </packing>
-                                                    </child>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="top_attach">1</property>
-                                                    <property name="bottom_attach">2</property>
-                                                    <property name="x_options"></property>
-                                                  </packing>
-                                                </child>
-                                              </object>
-                                            </child>
-                                          </object>
-                                          <packing>
-                                            <property name="left_attach">2</property>
-                                            <property name="right_attach">3</property>
-                                            <property name="bottom_attach">3</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options">GTK_FILL</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkAlignment" id="alignment60">
-                                            <property name="visible">True</property>
-                                            <property name="left_padding">25</property>
-                                            <child>
-                                              <object class="GtkHBox" id="hbox46">
-                                                <property name="visible">True</property>
-                                                <property name="spacing">3</property>
-                                                <child>
-                                                  <object class="GtkLabel" id="magZoomerPositionLabel">
-                                                    <property name="visible">True</property>
-                                                    <property name="xalign">0</property>
-                                                    <property name="label" translatable="yes">_Position:</property>
-                                                    <property name="use_underline">True</property>
-                                                    <property name="mnemonic_widget">magZoomerPositionComboBox</property>
-                                                    <accessibility>
-                                                      <relation type="label-for" target="magZoomerPositionComboBox"/>
-                                                    </accessibility>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="expand">False</property>
-                                                    <property name="fill">False</property>
-                                                    <property name="position">0</property>
-                                                  </packing>
-                                                </child>
-                                                <child>
-                                                  <object class="GtkComboBox" id="magZoomerPositionComboBox">
-                                                    <property name="visible">True</property>
-                                                    <property name="model">model3</property>
-                                                    <accessibility>
-                                                      <relation type="labelled-by" target="magZoomerPositionLabel"/>
-                                                    </accessibility>
-                                                    <signal name="changed" handler="magZoomerPositionChanged"/>
-                                                    <child>
-                                                      <object class="GtkCellRendererText" id="renderer3"/>
-                                                      <attributes>
-                                                        <attribute name="text">0</attribute>
-                                                      </attributes>
-                                                    </child>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="expand">False</property>
-                                                    <property name="fill">False</property>
-                                                    <property name="position">1</property>
-                                                  </packing>
-                                                </child>
-                                              </object>
-                                            </child>
-                                          </object>
-                                          <packing>
-                                            <property name="right_attach">2</property>
-                                            <property name="top_attach">1</property>
-                                            <property name="bottom_attach">2</property>
-                                            <property name="x_options"></property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkAlignment" id="alignment31">
-                                            <property name="visible">True</property>
-                                            <property name="top_padding">2</property>
-                                            <property name="left_padding">19</property>
-                                            <child>
-                                              <object class="GtkCheckButton" id="magHideCursorCheckButton">
-                                                <property name="label" translatable="yes">Hide s_ystem pointer</property>
-                                                <property name="visible">True</property>
-                                                <property name="can_focus">True</property>
-                                                <property name="receives_default">False</property>
-                                                <property name="border_width">3</property>
-                                                <property name="use_underline">True</property>
-                                                <property name="draw_indicator">True</property>
-                                                <signal name="toggled" handler="magHideCursorChecked"/>
-                                              </object>
-                                            </child>
-                                          </object>
-                                          <packing>
-                                            <property name="right_attach">2</property>
-                                            <property name="top_attach">2</property>
-                                            <property name="bottom_attach">3</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options">GTK_FILL</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                    </child>
-                                  </object>
-                                </child>
-                                <child type="label">
-                                  <object class="GtkLabel" id="label21">
-                                    <property name="visible">True</property>
-                                    <property name="label" translatable="yes" context="Magnification" comments="Translators: This is a label in the Preferences dialog. It applies to a number of settings related to magnification. The Zoomer is what holds/displays the magnified version of the screen contents.">&lt;b&gt;Zoomer&lt;/b&gt;</property>
-                                    <property name="use_markup">True</property>
-                                  </object>
-                                </child>
-                              </object>
-                            </child>
-                          </object>
-                          <packing>
-                            <property name="right_attach">2</property>
-                            <property name="x_options">GTK_FILL</property>
-                            <property name="y_options">GTK_FILL</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkAlignment" id="magCrossHairLabelAlignment">
-                            <property name="visible">True</property>
-                            <property name="top_padding">12</property>
-                            <child>
-                              <object class="GtkFrame" id="magCrossHairSettingsFrame">
-                                <property name="visible">True</property>
-                                <property name="label_xalign">0</property>
-                                <property name="shadow_type">none</property>
-                                <child>
-                                  <object class="GtkAlignment" id="alignment40">
-                                    <property name="visible">True</property>
-                                    <property name="left_padding">12</property>
-                                    <child>
-                                      <object class="GtkVBox" id="vbox33">
-                                        <property name="visible">True</property>
-                                        <child>
-                                          <object class="GtkAlignment" id="alignment83">
-                                            <property name="visible">True</property>
-                                            <property name="left_padding">3</property>
-                                            <child>
-                                              <object class="GtkCheckButton" id="magCrossHairOnOffCheckButton">
-                                                <property name="label" translatable="yes">Enable cross-h_air</property>
-                                                <property name="visible">True</property>
-                                                <property name="can_focus">True</property>
-                                                <property name="receives_default">False</property>
-                                                <property name="use_underline">True</property>
-                                                <property name="draw_indicator">True</property>
-                                                <signal name="toggled" handler="magCrossHairOnOffChecked"/>
-                                              </object>
-                                            </child>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkAlignment" id="alignment82">
-                                            <property name="visible">True</property>
-                                            <child>
-                                              <object class="GtkTable" id="magCrossHairTable">
-                                                <property name="visible">True</property>
-                                                <property name="border_width">3</property>
-                                                <property name="n_rows">3</property>
-                                                <property name="column_spacing">3</property>
-                                                <property name="row_spacing">3</property>
-                                                <child>
-                                                  <object class="GtkCheckButton" id="magCrossHairClipCheckButton">
-                                                    <property name="label" translatable="yes">Enable cross-hair cl_ip</property>
-                                                    <property name="visible">True</property>
-                                                    <property name="can_focus">True</property>
-                                                    <property name="receives_default">False</property>
-                                                    <property name="use_underline">True</property>
-                                                    <property name="draw_indicator">True</property>
-                                                    <signal name="toggled" handler="magCrossHairClipOnOffChecked"/>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="x_options">GTK_FILL</property>
-                                                    <property name="y_options"></property>
-                                                  </packing>
-                                                </child>
-                                                <child>
-                                                  <object class="GtkAlignment" id="alignment52">
-                                                    <property name="visible">True</property>
-                                                    <child>
-                                                      <object class="GtkHBox" id="hbox33">
-                                                        <property name="visible">True</property>
-                                                        <property name="spacing">3</property>
-                                                        <child>
-                                                          <object class="GtkLabel" id="magCrossHairSizeLabel">
-                                                            <property name="visible">True</property>
-                                                            <property name="xalign">0</property>
-                                                            <property name="label" translatable="yes">Cross-hair si_ze:</property>
-                                                            <property name="use_underline">True</property>
-                                                            <property name="mnemonic_widget">magCrossHairSizeSpinButton</property>
-                                                            <accessibility>
-                                                            <relation type="label-for" target="magCrossHairSizeSpinButton"/>
-                                                            </accessibility>
-                                                          </object>
-                                                          <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">False</property>
-                                                            <property name="position">0</property>
-                                                          </packing>
-                                                        </child>
-                                                        <child>
-                                                          <object class="GtkSpinButton" id="magCrossHairSizeSpinButton">
-                                                            <property name="visible">True</property>
-                                                            <property name="can_focus">True</property>
-                                                            <property name="invisible_char">&#x25CF;</property>
-                                                            <property name="adjustment">adjustment14</property>
-                                                            <property name="climb_rate">1</property>
-                                                            <property name="numeric">True</property>
-                                                            <accessibility>
-                                                            <relation type="labelled-by" target="magCrossHairSizeLabel"/>
-                                                            <relation type="labelled-by" target="magCrossHairSizeUnitsLabel"/>
-                                                            </accessibility>
-                                                            <signal name="value_changed" handler="magCrossHairSizeValueChanged"/>
-                                                          </object>
-                                                          <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="position">1</property>
-                                                          </packing>
-                                                        </child>
-                                                        <child>
-                                                          <object class="GtkLabel" id="magCrossHairSizeUnitsLabel">
-                                                            <property name="visible">True</property>
-                                                            <property name="label" translatable="yes">pixels</property>
-                                                            <accessibility>
-                                                            <relation type="label-for" target="magCrossHairSizeSpinButton"/>
-                                                            </accessibility>
-                                                          </object>
-                                                          <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">False</property>
-                                                            <property name="position">2</property>
-                                                          </packing>
-                                                        </child>
-                                                      </object>
-                                                    </child>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="top_attach">1</property>
-                                                    <property name="bottom_attach">2</property>
-                                                    <property name="x_options">GTK_FILL</property>
-                                                    <property name="y_options">GTK_FILL</property>
-                                                  </packing>
-                                                </child>
-                                                <child>
-                                                  <object class="GtkAlignment" id="alignment75">
-                                                    <property name="visible">True</property>
-                                                    <child>
-                                                      <object class="GtkHBox" id="hbox54">
-                                                        <property name="visible">True</property>
-                                                        <property name="spacing">3</property>
-                                                        <child>
-                                                          <object class="GtkLabel" id="magCrossHairColorLabel">
-                                                            <property name="visible">True</property>
-                                                            <property name="label" translatable="yes">Cross-hair color:</property>
-                                                            <accessibility>
-                                                            <relation type="label-for" target="magCrossHairColorButton"/>
-                                                            </accessibility>
-                                                          </object>
-                                                          <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">False</property>
-                                                            <property name="position">0</property>
-                                                          </packing>
-                                                        </child>
-                                                        <child>
-                                                          <object class="GtkColorButton" id="magCrossHairColorButton">
-                                                            <property name="visible">True</property>
-                                                            <property name="can_focus">True</property>
-                                                            <property name="receives_default">True</property>
-                                                            <property name="color">#000000000000</property>
-                                                            <accessibility>
-                                                            <relation type="labelled-by" target="magCrossHairColorLabel"/>
-                                                            </accessibility>
-                                                            <signal name="color_set" handler="magCrossHairColorSet"/>
-                                                          </object>
-                                                          <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">False</property>
-                                                            <property name="position">1</property>
-                                                          </packing>
-                                                        </child>
-                                                      </object>
-                                                    </child>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="top_attach">2</property>
-                                                    <property name="bottom_attach">3</property>
-                                                    <property name="x_options">GTK_FILL</property>
-                                                  </packing>
-                                                </child>
-                                              </object>
-                                            </child>
-                                          </object>
-                                          <packing>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                    </child>
-                                  </object>
-                                </child>
-                                <child type="label">
-                                  <object class="GtkLabel" id="label20">
-                                    <property name="visible">True</property>
-                                    <property name="label" translatable="yes" context="Magnification" comments="Translators: This is a label in the Preferences dialog box. It applies to a group of settings related to the customization of the mouse pointer by adding a plus/cross-hair around it to make it easier to see. Options include whether or not cross-hairs should be enabled, as well as what their color and size should be.">&lt;b&gt;Cross-hair&lt;/b&gt;</property>
-                                    <property name="use_markup">True</property>
-                                  </object>
-                                </child>
-                              </object>
-                            </child>
-                          </object>
-                          <packing>
-                            <property name="left_attach">3</property>
-                            <property name="right_attach">4</property>
-                            <property name="top_attach">1</property>
-                            <property name="bottom_attach">2</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkAlignment" id="magCursorLabelAlignment">
-                            <property name="visible">True</property>
-                            <property name="top_padding">12</property>
-                            <child>
-                              <object class="GtkFrame" id="magCursorSettingsFrame">
-                                <property name="visible">True</property>
-                                <property name="label_xalign">0</property>
-                                <property name="shadow_type">none</property>
-                                <child>
-                                  <object class="GtkAlignment" id="alignment39">
-                                    <property name="visible">True</property>
-                                    <property name="left_padding">12</property>
-                                    <child>
-                                      <object class="GtkVBox" id="vbox32">
-                                        <property name="visible">True</property>
-                                        <child>
-                                          <object class="GtkAlignment" id="alignment81">
-                                            <property name="visible">True</property>
-                                            <property name="left_padding">3</property>
-                                            <child>
-                                              <object class="GtkCheckButton" id="magCursorOnOffCheckButton">
-                                                <property name="label" translatable="yes">Enable c_ursor</property>
-                                                <property name="visible">True</property>
-                                                <property name="can_focus">True</property>
-                                                <property name="receives_default">False</property>
-                                                <property name="use_underline">True</property>
-                                                <property name="draw_indicator">True</property>
-                                                <signal name="toggled" handler="magCursorOnOffChecked"/>
-                                              </object>
-                                            </child>
-                                          </object>
-                                          <packing>
-                                            <property name="expand">False</property>
-                                            <property name="fill">False</property>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkAlignment" id="alignment80">
-                                            <property name="visible">True</property>
-                                            <child>
-                                              <object class="GtkTable" id="magCursorTable">
-                                                <property name="visible">True</property>
-                                                <property name="border_width">3</property>
-                                                <property name="n_rows">3</property>
-                                                <property name="column_spacing">3</property>
-                                                <property name="row_spacing">3</property>
-                                                <child>
-                                                  <object class="GtkCheckButton" id="magCursorSizeCheckButton">
-                                                    <property name="label" translatable="yes">Custom siz_e</property>
-                                                    <property name="visible">True</property>
-                                                    <property name="can_focus">True</property>
-                                                    <property name="receives_default">False</property>
-                                                    <property name="use_underline">True</property>
-                                                    <property name="draw_indicator">True</property>
-                                                    <signal name="toggled" handler="magCursorExplicitSizeChecked"/>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="x_options">GTK_FILL</property>
-                                                    <property name="y_options"></property>
-                                                  </packing>
-                                                </child>
-                                                <child>
-                                                  <object class="GtkAlignment" id="alignment51">
-                                                    <property name="visible">True</property>
-                                                    <child>
-                                                      <object class="GtkHBox" id="hbox38">
-                                                        <property name="visible">True</property>
-                                                        <property name="spacing">3</property>
-                                                        <child>
-                                                          <object class="GtkLabel" id="magCursorSizeLabel">
-                                                            <property name="visible">True</property>
-                                                            <property name="label" translatable="yes">Cursor size:</property>
-                                                            <property name="use_underline">True</property>
-                                                            <property name="mnemonic_widget">magCursorSizeSpinButton</property>
-                                                            <accessibility>
-                                                            <relation type="label-for" target="magCursorSizeSpinButton"/>
-                                                            </accessibility>
-                                                          </object>
-                                                          <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">False</property>
-                                                            <property name="position">0</property>
-                                                          </packing>
-                                                        </child>
-                                                        <child>
-                                                          <object class="GtkSpinButton" id="magCursorSizeSpinButton">
-                                                            <property name="visible">True</property>
-                                                            <property name="can_focus">True</property>
-                                                            <property name="invisible_char">&#x25CF;</property>
-                                                            <property name="adjustment">adjustment13</property>
-                                                            <property name="climb_rate">1</property>
-                                                            <property name="numeric">True</property>
-                                                            <accessibility>
-                                                            <relation type="labelled-by" target="magCursorSizeLabel"/>
-                                                            <relation type="labelled-by" target="magCursorSizeUnitsLabel"/>
-                                                            </accessibility>
-                                                            <signal name="value_changed" handler="magCursorSizeValueChanged"/>
-                                                          </object>
-                                                          <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">False</property>
-                                                            <property name="position">1</property>
-                                                          </packing>
-                                                        </child>
-                                                        <child>
-                                                          <object class="GtkLabel" id="magCursorSizeUnitsLabel">
-                                                            <property name="visible">True</property>
-                                                            <property name="label" translatable="yes">pixels</property>
-                                                            <accessibility>
-                                                            <relation type="label-for" target="magCursorSizeSpinButton"/>
-                                                            </accessibility>
-                                                          </object>
-                                                          <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">False</property>
-                                                            <property name="position">2</property>
-                                                          </packing>
-                                                        </child>
-                                                      </object>
-                                                    </child>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="top_attach">1</property>
-                                                    <property name="bottom_attach">2</property>
-                                                    <property name="x_options">GTK_FILL</property>
-                                                  </packing>
-                                                </child>
-                                                <child>
-                                                  <object class="GtkAlignment" id="alignment50">
-                                                    <property name="visible">True</property>
-                                                    <child>
-                                                      <object class="GtkHBox" id="hbox37">
-                                                        <property name="visible">True</property>
-                                                        <property name="spacing">3</property>
-                                                        <child>
-                                                          <object class="GtkLabel" id="magCursorColorLabel">
-                                                            <property name="visible">True</property>
-                                                            <property name="xalign">1</property>
-                                                            <property name="label" translatable="yes">Cursor color:</property>
-                                                            <property name="use_underline">True</property>
-                                                            <property name="justify">right</property>
-                                                            <property name="mnemonic_widget">magCursorColorButton</property>
-                                                            <accessibility>
-                                                            <relation type="label-for" target="magCursorColorButton"/>
-                                                            </accessibility>
-                                                          </object>
-                                                          <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">False</property>
-                                                            <property name="position">0</property>
-                                                          </packing>
-                                                        </child>
-                                                        <child>
-                                                          <object class="GtkColorButton" id="magCursorColorButton">
-                                                            <property name="visible">True</property>
-                                                            <property name="can_focus">True</property>
-                                                            <property name="receives_default">True</property>
-                                                            <property name="color">#000000000000</property>
-                                                            <accessibility>
-                                                            <relation type="labelled-by" target="magCursorColorLabel"/>
-                                                            </accessibility>
-                                                            <signal name="color_set" handler="magCursorColorSet"/>
-                                                          </object>
-                                                          <packing>
-                                                            <property name="expand">False</property>
-                                                            <property name="fill">False</property>
-                                                            <property name="position">1</property>
-                                                          </packing>
-                                                        </child>
-                                                      </object>
-                                                    </child>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="top_attach">2</property>
-                                                    <property name="bottom_attach">3</property>
-                                                    <property name="x_options">GTK_FILL</property>
-                                                  </packing>
-                                                </child>
-                                              </object>
-                                            </child>
-                                          </object>
-                                          <packing>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                    </child>
-                                  </object>
-                                </child>
-                                <child type="label">
-                                  <object class="GtkLabel" id="label19">
-                                    <property name="visible">True</property>
-                                    <property name="label" translatable="yes" context="Magnification" comments="Translators: This is a label in the Preferences dialog box. It applies to a group of settings related to the cursor displayed for magnification users. Users can opt to enable an enlarged cursor, and customize its size and color.">&lt;b&gt;Cursor&lt;/b&gt;</property>
-                                    <property name="use_markup">True</property>
-                                  </object>
-                                </child>
-                              </object>
-                            </child>
-                          </object>
-                          <packing>
-                            <property name="left_attach">2</property>
-                            <property name="right_attach">3</property>
-                            <property name="top_attach">1</property>
-                            <property name="bottom_attach">2</property>
-                            <property name="x_options">GTK_FILL</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkAlignment" id="magColorLabelAlignment">
-                            <property name="visible">True</property>
-                            <property name="top_padding">12</property>
-                            <child>
-                              <object class="GtkFrame" id="frame11">
-                                <property name="visible">True</property>
-                                <property name="label_xalign">0</property>
-                                <property name="shadow_type">none</property>
-                                <child>
-                                  <object class="GtkAlignment" id="alignment73">
-                                    <property name="visible">True</property>
-                                    <property name="left_padding">12</property>
-                                    <child>
-                                      <object class="GtkTable" id="table14">
-                                        <property name="visible">True</property>
-                                        <property name="n_rows">3</property>
-                                        <property name="n_columns">2</property>
-                                        <property name="column_spacing">3</property>
-                                        <property name="row_spacing">3</property>
-                                        <child>
-                                          <object class="GtkCheckButton" id="magInvertColorsCheckBox">
-                                            <property name="label" translatable="yes">In_vert colors</property>
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="receives_default">False</property>
-                                            <property name="use_underline">True</property>
-                                            <property name="draw_indicator">True</property>
-                                            <signal name="toggled" handler="magInvertColorsChecked"/>
-                                          </object>
-                                          <packing>
-                                            <property name="right_attach">2</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkLabel" id="magColorBrightnessLabel">
-                                            <property name="visible">True</property>
-                                            <property name="xalign">0</property>
-                                            <property name="label" translatable="yes">Brightness:</property>
-                                            <property name="justify">right</property>
-                                            <accessibility>
-                                              <relation type="label-for" target="magColorBrightnessSpinButton"/>
-                                            </accessibility>
-                                          </object>
-                                          <packing>
-                                            <property name="top_attach">1</property>
-                                            <property name="bottom_attach">2</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkLabel" id="magColorContrastLabel">
-                                            <property name="visible">True</property>
-                                            <property name="xalign">0</property>
-                                            <property name="label" translatable="yes">Contrast:</property>
-                                            <property name="justify">right</property>
-                                            <accessibility>
-                                              <relation type="label-for" target="magColorContrastSpinButton"/>
-                                            </accessibility>
-                                          </object>
-                                          <packing>
-                                            <property name="top_attach">2</property>
-                                            <property name="bottom_attach">3</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkSpinButton" id="magColorBrightnessSpinButton">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">&#x25CF;</property>
-                                            <property name="adjustment">adjustment11</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="digits">2</property>
-                                            <property name="numeric">True</property>
-                                            <accessibility>
-                                              <relation type="labelled-by" target="magColorBrightnessLabel"/>
-                                            </accessibility>
-                                            <signal name="value_changed" handler="magColorBrightnessValueChanged"/>
-                                          </object>
-                                          <packing>
-                                            <property name="left_attach">1</property>
-                                            <property name="right_attach">2</property>
-                                            <property name="top_attach">1</property>
-                                            <property name="bottom_attach">2</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkSpinButton" id="magColorContrastSpinButton">
-                                            <property name="visible">True</property>
-                                            <property name="can_focus">True</property>
-                                            <property name="invisible_char">&#x25CF;</property>
-                                            <property name="adjustment">adjustment12</property>
-                                            <property name="climb_rate">1</property>
-                                            <property name="digits">2</property>
-                                            <property name="numeric">True</property>
-                                            <accessibility>
-                                              <relation type="labelled-by" target="magColorContrastLabel"/>
-                                            </accessibility>
-                                            <signal name="value_changed" handler="magColorContrastValueChanged"/>
-                                            <signal name="value_changed" handler="magColorContrastValueChanged"/>
-                                          </object>
-                                          <packing>
-                                            <property name="left_attach">1</property>
-                                            <property name="right_attach">2</property>
-                                            <property name="top_attach">2</property>
-                                            <property name="bottom_attach">3</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                    </child>
-                                  </object>
-                                </child>
-                                <child type="label">
-                                  <object class="GtkLabel" id="label37">
-                                    <property name="visible">True</property>
-                                    <property name="label" translatable="yes" context="Magnification" comments="Translators: This is a label in the Preferences dialog box. It applies to a group of settings related to the colors displayed for magnification users, namely brightness, contrast, and whether or not all colors should be inverted.">&lt;b&gt;Color&lt;/b&gt;</property>
-                                    <property name="use_markup">True</property>
-                                  </object>
-                                </child>
-                              </object>
-                            </child>
-                          </object>
-                          <packing>
-                            <property name="top_attach">1</property>
-                            <property name="bottom_attach">2</property>
-                            <property name="x_options">GTK_FILL</property>
-                            <property name="y_options">GTK_FILL</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkAlignment" id="magBorderAlignment">
-                            <property name="visible">True</property>
-                            <property name="top_padding">12</property>
-                            <property name="left_padding">25</property>
-                            <child>
-                              <object class="GtkFrame" id="frame10">
-                                <property name="visible">True</property>
-                                <property name="label_xalign">0</property>
-                                <property name="shadow_type">none</property>
-                                <child>
-                                  <object class="GtkAlignment" id="alignment72">
-                                    <property name="visible">True</property>
-                                    <property name="yalign">0</property>
-                                    <property name="yscale">0</property>
-                                    <property name="left_padding">12</property>
-                                    <child>
-                                      <object class="GtkVBox" id="vbox31">
-                                        <property name="visible">True</property>
-                                        <child>
-                                          <object class="GtkAlignment" id="alignment78">
-                                            <property name="visible">True</property>
-                                            <child>
-                                              <object class="GtkCheckButton" id="magBorderCheckButton">
-                                                <property name="label" translatable="yes">Enable bor_der</property>
-                                                <property name="visible">True</property>
-                                                <property name="can_focus">True</property>
-                                                <property name="receives_default">False</property>
-                                                <property name="use_underline">True</property>
-                                                <property name="draw_indicator">True</property>
-                                                <signal name="toggled" handler="magBorderChecked"/>
-                                              </object>
-                                            </child>
-                                          </object>
-                                          <packing>
-                                            <property name="position">0</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkAlignment" id="alignment79">
-                                            <property name="visible">True</property>
-                                            <child>
-                                              <object class="GtkTable" id="magBorderTable">
-                                                <property name="visible">True</property>
-                                                <property name="n_rows">2</property>
-                                                <property name="n_columns">2</property>
-                                                <property name="column_spacing">3</property>
-                                                <property name="row_spacing">3</property>
-                                                <child>
-                                                  <object class="GtkLabel" id="magBorderSizeLabel">
-                                                    <property name="visible">True</property>
-                                                    <property name="xalign">0</property>
-                                                    <property name="label" translatable="yes">Border size:</property>
-                                                    <property name="justify">right</property>
-                                                    <accessibility>
-                                                      <relation type="label-for" target="magBorderSizeSpinButton"/>
-                                                    </accessibility>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="x_options">GTK_FILL</property>
-                                                    <property name="y_options"></property>
-                                                  </packing>
-                                                </child>
-                                                <child>
-                                                  <object class="GtkSpinButton" id="magBorderSizeSpinButton">
-                                                    <property name="visible">True</property>
-                                                    <property name="can_focus">True</property>
-                                                    <property name="invisible_char">&#x25CF;</property>
-                                                    <property name="adjustment">adjustment10</property>
-                                                    <property name="climb_rate">1</property>
-                                                    <property name="numeric">True</property>
-                                                    <accessibility>
-                                                      <relation type="labelled-by" target="magBorderSizeLabel"/>
-                                                    </accessibility>
-                                                    <signal name="value_changed" handler="magBorderSizeValueChanged"/>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="left_attach">1</property>
-                                                    <property name="right_attach">2</property>
-                                                    <property name="x_options">GTK_FILL</property>
-                                                    <property name="y_options"></property>
-                                                  </packing>
-                                                </child>
-                                                <child>
-                                                  <object class="GtkLabel" id="magBorderColorLabel">
-                                                    <property name="visible">True</property>
-                                                    <property name="xalign">0</property>
-                                                    <property name="label" translatable="yes">Border color:</property>
-                                                    <property name="justify">right</property>
-                                                    <accessibility>
-                                                      <relation type="label-for" target="magBorderColorButton"/>
-                                                    </accessibility>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="top_attach">1</property>
-                                                    <property name="bottom_attach">2</property>
-                                                    <property name="x_options">GTK_FILL</property>
-                                                    <property name="y_options"></property>
-                                                  </packing>
-                                                </child>
-                                                <child>
-                                                  <object class="GtkColorButton" id="magBorderColorButton">
-                                                    <property name="visible">True</property>
-                                                    <property name="can_focus">True</property>
-                                                    <property name="receives_default">True</property>
-                                                    <property name="color">#000000000000</property>
-                                                    <accessibility>
-                                                      <relation type="labelled-by" target="magBorderColorLabel"/>
-                                                    </accessibility>
-                                                    <signal name="color_set" handler="magBorderColorSet"/>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="left_attach">1</property>
-                                                    <property name="right_attach">2</property>
-                                                    <property name="top_attach">1</property>
-                                                    <property name="bottom_attach">2</property>
-                                                    <property name="x_options">GTK_FILL</property>
-                                                    <property name="y_options"></property>
-                                                  </packing>
-                                                </child>
-                                              </object>
-                                            </child>
-                                          </object>
-                                          <packing>
-                                            <property name="position">1</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                    </child>
-                                  </object>
-                                </child>
-                                <child type="label">
-                                  <object class="GtkLabel" id="label36">
-                                    <property name="visible">True</property>
-                                    <property name="label" translatable="yes" context="Magnification" comments="Translators: This is a label in the Preferences dialog box. It applies to a group of settings related to the border which separates the magnified and non-magnified views of the screen contents (i.e. when a split screen is being used). The options include whether or not there should be a border, the size of the border, and the color of the border.">&lt;b&gt;Border&lt;/b&gt;</property>
-                                    <property name="use_markup">True</property>
-                                  </object>
-                                </child>
-                              </object>
-                            </child>
-                          </object>
-                          <packing>
-                            <property name="left_attach">1</property>
-                            <property name="right_attach">2</property>
-                            <property name="top_attach">1</property>
-                            <property name="bottom_attach">2</property>
-                            <property name="y_options">GTK_FILL</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkAlignment" id="magTrackingAlignment">
-                            <property name="visible">True</property>
-                            <child>
-                              <object class="GtkFrame" id="magTrackingAndAlignmentFrame">
-                                <property name="visible">True</property>
-                                <property name="label_xalign">0</property>
-                                <property name="shadow_type">none</property>
-                                <child>
-                                  <object class="GtkAlignment" id="alignment62">
-                                    <property name="visible">True</property>
-                                    <property name="left_padding">12</property>
-                                    <child>
-                                      <object class="GtkTable" id="table13">
-                                        <property name="visible">True</property>
-                                        <property name="n_rows">3</property>
-                                        <property name="n_columns">3</property>
-                                        <property name="column_spacing">3</property>
-                                        <property name="row_spacing">3</property>
-                                        <child>
-                                          <object class="GtkLabel" id="magMouseTrackingLabel">
-                                            <property name="visible">True</property>
-                                            <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">Mouse poi_nter:</property>
-                                            <property name="use_underline">True</property>
-                                            <property name="justify">right</property>
-                                            <property name="mnemonic_widget">magMouseTrackingComboBox</property>
-                                            <accessibility>
-                                              <relation type="label-for" target="magMouseTrackingComboBox"/>
-                                            </accessibility>
-                                          </object>
-                                          <packing>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkLabel" id="magControlTrackingLabel">
-                                            <property name="visible">True</property>
-                                            <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">_Control and menu item:</property>
-                                            <property name="use_underline">True</property>
-                                            <property name="justify">right</property>
-                                            <property name="mnemonic_widget">magControlTrackingComboBox</property>
-                                            <accessibility>
-                                              <relation type="label-for" target="magControlTrackingComboBox"/>
-                                            </accessibility>
-                                          </object>
-                                          <packing>
-                                            <property name="top_attach">1</property>
-                                            <property name="bottom_attach">2</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkComboBox" id="magControlTrackingComboBox">
-                                            <property name="visible">True</property>
-                                            <property name="model">model4</property>
-                                            <accessibility>
-                                              <relation type="labelled-by" target="magControlTrackingLabel"/>
-                                            </accessibility>
-                                            <signal name="changed" handler="magControlTrackingChanged"/>
-                                            <child>
-                                              <object class="GtkCellRendererText" id="renderer4"/>
-                                              <attributes>
-                                                <attribute name="text">0</attribute>
-                                              </attributes>
-                                            </child>
-                                          </object>
-                                          <packing>
-                                            <property name="left_attach">1</property>
-                                            <property name="right_attach">2</property>
-                                            <property name="top_attach">1</property>
-                                            <property name="bottom_attach">2</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options">GTK_FILL</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkLabel" id="magTextCursorTrackingLabel">
-                                            <property name="visible">True</property>
-                                            <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">Te_xt cursor:</property>
-                                            <property name="use_underline">True</property>
-                                            <property name="justify">right</property>
-                                            <property name="mnemonic_widget">magTextCursorTrackingComboBox</property>
-                                            <accessibility>
-                                              <relation type="label-for" target="magTextCursorTrackingComboBox"/>
-                                            </accessibility>
-                                          </object>
-                                          <packing>
-                                            <property name="top_attach">2</property>
-                                            <property name="bottom_attach">3</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkComboBox" id="magTextCursorTrackingComboBox">
-                                            <property name="visible">True</property>
-                                            <property name="model">model5</property>
-                                            <accessibility>
-                                              <relation type="labelled-by" target="magTextCursorTrackingLabel"/>
-                                            </accessibility>
-                                            <signal name="changed" handler="magTextTrackingChanged"/>
-                                            <child>
-                                              <object class="GtkCellRendererText" id="renderer5"/>
-                                              <attributes>
-                                                <attribute name="text">0</attribute>
-                                              </attributes>
-                                            </child>
-                                          </object>
-                                          <packing>
-                                            <property name="left_attach">1</property>
-                                            <property name="right_attach">2</property>
-                                            <property name="top_attach">2</property>
-                                            <property name="bottom_attach">3</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options">GTK_FILL</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkComboBox" id="magMouseTrackingComboBox">
-                                            <property name="visible">True</property>
-                                            <property name="model">model6</property>
-                                            <accessibility>
-                                              <relation type="labelled-by" target="magMouseTrackingLabel"/>
-                                            </accessibility>
-                                            <signal name="changed" handler="magMouseTrackingChanged"/>
-                                            <child>
-                                              <object class="GtkCellRendererText" id="renderer6"/>
-                                              <attributes>
-                                                <attribute name="text">0</attribute>
-                                              </attributes>
-                                            </child>
-                                          </object>
-                                          <packing>
-                                            <property name="left_attach">1</property>
-                                            <property name="right_attach">2</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options">GTK_FILL</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkAlignment" id="alignment84">
-                                            <property name="visible">True</property>
-                                            <child>
-                                              <object class="GtkHBox" id="magEdgeMarginHBox">
-                                                <property name="visible">True</property>
-                                                <property name="spacing">3</property>
-                                                <child>
-                                                  <object class="GtkLabel" id="magEdgeMarginLabel">
-                                                    <property name="visible">True</property>
-                                                    <property name="label" translatable="yes" comments="Translators: When a user chooses a tracking alignment of &quot;push&quot;, Orca moves the magnified view just enough to fit the object of interest at the very edge of the screen.  The &quot;edge margin&quot; allows the user to specify a margin so that objects are not displayed too close to the edge.">Edge mar_gin:</property>
-                                                    <property name="use_underline">True</property>
-                                                    <property name="justify">right</property>
-                                                    <property name="mnemonic_widget">magEdgeMarginSpinButton</property>
-                                                    <accessibility>
-                                                      <relation type="label-for" target="magEdgeMarginSpinButton"/>
-                                                    </accessibility>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="expand">False</property>
-                                                    <property name="fill">False</property>
-                                                    <property name="padding">17</property>
-                                                    <property name="position">0</property>
-                                                  </packing>
-                                                </child>
-                                                <child>
-                                                  <object class="GtkSpinButton" id="magEdgeMarginSpinButton">
-                                                    <property name="visible">True</property>
-                                                    <property name="can_focus">True</property>
-                                                    <property name="invisible_char">&#x25CF;</property>
-                                                    <property name="adjustment">adjustment15</property>
-                                                    <property name="climb_rate">1</property>
-                                                    <property name="numeric">True</property>
-                                                    <accessibility>
-                                                      <relation type="labelled-by" target="magEdgeMarginUnitsLabel"/>
-                                                      <relation type="labelled-by" target="magEdgeMarginLabel"/>
-                                                    </accessibility>
-                                                    <signal name="value_changed" handler="magEdgeMarginValueChanged"/>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="expand">False</property>
-                                                    <property name="fill">False</property>
-                                                    <property name="position">1</property>
-                                                  </packing>
-                                                </child>
-                                                <child>
-                                                  <object class="GtkLabel" id="magEdgeMarginUnitsLabel">
-                                                    <property name="visible">True</property>
-                                                    <property name="label" translatable="yes">%</property>
-                                                    <accessibility>
-                                                      <relation type="label-for" target="magEdgeMarginSpinButton"/>
-                                                    </accessibility>
-                                                  </object>
-                                                  <packing>
-                                                    <property name="expand">False</property>
-                                                    <property name="fill">False</property>
-                                                    <property name="position">2</property>
-                                                  </packing>
-                                                </child>
-                                              </object>
-                                            </child>
-                                          </object>
-                                          <packing>
-                                            <property name="left_attach">2</property>
-                                            <property name="right_attach">3</property>
-                                            <property name="top_attach">2</property>
-                                            <property name="bottom_attach">3</property>
-                                            <property name="y_options">GTK_FILL</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkAlignment" id="alignment85">
-                                            <property name="visible">True</property>
-                                            <property name="left_padding">15</property>
-                                            <child>
-                                              <object class="GtkCheckButton" id="magPointerFocusCheckButton">
-                                                <property name="label" translatable="yes" comments="Translators:  if this setting is enabled, the mouse pointer will move to each menu item that the user has arrowed to and each dialog box control that the user has tabbed to.">Pointer follows focus</property>
-                                                <property name="visible">True</property>
-                                                <property name="can_focus">True</property>
-                                                <property name="receives_default">False</property>
-                                                <property name="use_underline">True</property>
-                                                <property name="draw_indicator">True</property>
-                                                <signal name="toggled" handler="magPointerFocusChecked"/>
-                                              </object>
-                                            </child>
-                                          </object>
-                                          <packing>
-                                            <property name="left_attach">2</property>
-                                            <property name="right_attach">3</property>
-                                            <property name="top_attach">1</property>
-                                            <property name="bottom_attach">2</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options">GTK_FILL</property>
-                                          </packing>
-                                        </child>
-                                        <child>
-                                          <object class="GtkAlignment" id="alignment86">
-                                            <property name="visible">True</property>
-                                            <property name="left_padding">15</property>
-                                            <child>
-                                              <object class="GtkCheckButton" id="magPointerZoomerCheckButton">
-                                                <property name="label" translatable="yes" comments="Translators: when using magnification software, it is possible for the mouse pointer to not be visible in the &quot;zoomer,&quot; which is the magnified view of the screen.  If the &quot;pointer follows zoomer&quot; setting is enabled and the mouse is moved, the pointer will be moved so that it is visible in the zoomer.  If it is not enabled, the zoomer will be moved to display the location of the mouse pointer.">Pointer follows zoomer</property>
-                                                <property name="visible">True</property>
-                                                <property name="can_focus">True</property>
-                                                <property name="receives_default">False</property>
-                                                <property name="use_underline">True</property>
-                                                <property name="draw_indicator">True</property>
-                                                <signal name="toggled" handler="magPointerZoomerChecked"/>
-                                              </object>
-                                            </child>
-                                          </object>
-                                          <packing>
-                                            <property name="left_attach">2</property>
-                                            <property name="right_attach">3</property>
-                                            <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options">GTK_FILL</property>
-                                          </packing>
-                                        </child>
-                                      </object>
-                                    </child>
-                                  </object>
-                                </child>
-                                <child type="label">
-                                  <object class="GtkLabel" id="label30">
-                                    <property name="visible">True</property>
-                                    <property name="label" translatable="yes" comments="Translators:  In the context of magnifying the contents of the screen, &quot;tracking&quot; refers to whether or not an object (mouse pointer, the caret, or the widget with focus) is of interest.  Objects of interest must always be displayed.  &quot;Alignment&quot; refers to where on the screen objects of interest should be displayed.">&lt;b&gt;Tracking and Alignment&lt;/b&gt;</property>
-                                    <property name="use_markup">True</property>
-                                  </object>
-                                </child>
-                              </object>
-                            </child>
-                          </object>
-                          <packing>
-                            <property name="left_attach">2</property>
-                            <property name="right_attach">4</property>
-                            <property name="x_options">GTK_FILL</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkButton" id="magAdvancedButton">
-                            <property name="label" translatable="yes" context="Magnification" comments="This is a button on the Magnifier notebook page of the Preferences dialog. Pressing this button results in a dialog in which the user can fine tune more advanced settings.">Advanced...</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">True</property>
-                            <property name="use_underline">True</property>
-                            <signal name="clicked" handler="magAdvancedButtonClicked"/>
-                          </object>
-                          <packing>
-                            <property name="top_attach">2</property>
-                            <property name="bottom_attach">3</property>
-                            <property name="x_options">GTK_FILL</property>
-                            <property name="y_options"></property>
-                          </packing>
-                        </child>
-                        <child>
-                          <placeholder/>
-                        </child>
-                        <child>
-                          <placeholder/>
-                        </child>
-                        <child>
-                          <placeholder/>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="position">4</property>
-                    <property name="tab_fill">False</property>
-                  </packing>
-                </child>
-                <child type="tab">
-                  <object class="GtkLabel" id="magnifierTabLabel">
-                    <property name="visible">True</property>
-                    <property name="label" translatable="yes">Magnifier</property>
-                  </object>
-                  <packing>
-                    <property name="position">4</property>
-                    <property name="tab_fill">False</property>
-                  </packing>
-                </child>
-                <child>
                   <object class="GtkVBox" id="keyBindingsVBox">
                     <property name="visible">True</property>
                     <property name="border_width">12</property>
diff --git a/src/orca/orca.py b/src/orca/orca.py
index 0a0c6f8..70a1850 100644
--- a/src/orca/orca.py
+++ b/src/orca/orca.py
@@ -2111,7 +2111,7 @@ def shutdown(script=None, inputEvent=None):
         speech.shutdown()
     if settings.enableBraille:
         braille.shutdown()
-    if settings.enableMagnifier or settings.enableMagLiveUpdating:
+    if settings.enableMagnifier:
         mag.shutdown()
 
     if settings.timeoutCallback and (settings.timeoutTime > 0):
diff --git a/src/orca/orca_gui_prefs.py b/src/orca/orca_gui_prefs.py
index d691980..9a8b283 100644
--- a/src/orca/orca_gui_prefs.py
+++ b/src/orca/orca_gui_prefs.py
@@ -35,10 +35,6 @@ import locale
 import time
 
 import acss
-try:
-    import gsmag as mag
-except:
-    import mag
 import orca
 import orca_gtkbuilder
 import orca_state
@@ -97,36 +93,6 @@ from orca_i18n import C_ # to provide qualified translatable strings
 
 class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
 
-    # Translators: this is an algorithm for tracking an object
-    # of interest (mouse pointer, caret, or widget) with the
-    # magnifier.  Centered means that Orca attempts to keep
-    # the object of interest in the center of the magnified window.
-    #
-    magTrackingCenteredStr = _("Centered")
-
-    # Translators: there is no special algorithm used for tracking an
-    # object of interest (mouse pointer, caret, or widget) with the
-    # magnifier.
-    #
-    magTrackingNoneStr = _("None")
-
-    # Translators: this is an algorithm for tracking the mouse
-    # with the magnifier.  Proportional means that Orca attempts
-    # to position the mouse in the magnifier window in a way
-    # such that it helps represent where on the desktop the mouse
-    # is.  For example, if the mouse is 25% from the left edge of
-    # the desktop, Orca positions the mouse 25% from the left edge
-    # of the magnified region.
-    #
-    magTrackingProportionalStr = _("Proportional")
-
-    # Translators: this is an algorithm for tracking an object
-    # of interest (mouse pointer, caret, or widget) with the
-    # magnifier.  Push means that Orca will move the magnified
-    # region just enough to display the object of interest.
-    #
-    magTrackingPushStr = _("Push")
-
     def __init__(self, fileName, windowName, prefsDict = None):
         """Initialize the Orca configuration GUI.
 
@@ -138,8 +104,6 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
 
         orca_gtkbuilder.GtkBuilderWrapper.__init__(self, fileName, windowName)
         self.prefsDict = self._getGeneralSettings(prefsDict)
-        self.enableLiveUpdating = \
-            _settingsManager.getSetting('enableMagLiveUpdating')
 
         # Initialize variables to None to keep pylint happy.
         #
@@ -1470,120 +1434,6 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
         self.pronunciationView.connect("cursor_changed",
                                        self.pronunciationCursorChanged)
 
-    def _setZoomerSpinButtons(self):
-        """Populate/update the values and ranges of the four zoomer
-        spin buttons on the Magnifier pane.
-        """
-
-        # Get the width and the height of the target screen. If there is
-        # no target screen set, use the default.
-        #
-        display = gtk.gdk.display_get_default()
-        nScreens = display.get_n_screens()
-        targetScreen = display.get_default_screen()
-        targetDisplay = orca_state.advancedMag.get_widget(\
-                             "magTargetDisplayEntry").get_active_text()
-        if targetDisplay:
-            t = targetDisplay.split(".")
-            try:
-                targetNumber = int(t[-1])
-                if targetNumber in range(0, nScreens):
-                    targetScreen = display.get_screen(targetNumber)
-            except:
-                pass
-
-        targetWidth = targetScreen.get_width()
-        targetHeight = targetScreen.get_height()
-
-        prefs = self.prefsDict
-        
-        # Get the zoomer placement top preference and set the top spin
-        # button value accordingly. Set the top spin button "max size" to
-        # the height of the target screen.  If there is no target screen
-        # set, use the default.
-        #
-        topPosition = prefs["magZoomerTop"]
-        adjustment = gtk.Adjustment(
-            min(topPosition, targetHeight), 
-            0, targetHeight, 
-            1,
-            targetHeight / 16, 0)
-
-        if orca_state.appOS:
-            spinButton = orca_state.appOS.get_widget("magZoomerTopSpinButton")
-        else:
-            spinButton = orca_state.orcaOS.get_widget("magZoomerTopSpinButton")
-
-        spinButton.set_adjustment(adjustment)
-        if topPosition > targetHeight:
-            spinButton.update()
-
-        # Get the zoomer placement left preference and set the left spin
-        # button value accordingly. Set the left spin button "max size" to
-        # the width of the target screen. If there is no target screen set,
-        # use the default.
-        #
-        leftPosition = prefs["magZoomerLeft"]
-        adjustment = gtk.Adjustment(
-            min(leftPosition, targetWidth),
-            0, targetWidth, 
-            1,
-            targetWidth / 16, 0)
-
-        if orca_state.appOS:
-            spinButton = orca_state.appOS.get_widget("magZoomerLeftSpinButton")
-        else:
-            spinButton = orca_state.orcaOS.get_widget("magZoomerLeftSpinButton")
-
-        spinButton.set_adjustment(adjustment)
-        if leftPosition > targetWidth:
-            spinButton.update()
-
-        # Get the zoomer placement right preference and set the right spin
-        # button value accordingly. Set the right spin button "max size" to
-        # the width of the target screen. If there is no target screen set,
-        # use the default.
-        #
-        rightPosition = prefs["magZoomerRight"]
-        adjustment = gtk.Adjustment(
-            min(rightPosition, targetWidth),
-            0, targetWidth, 
-            1,
-            targetWidth / 16, 0)
-
-        if orca_state.appOS:
-            spinButton = \
-                orca_state.appOS.get_widget("magZoomerRightSpinButton")
-        else:
-            spinButton = \
-                orca_state.orcaOS.get_widget("magZoomerRightSpinButton")
-
-        spinButton.set_adjustment(adjustment)
-        if rightPosition > targetWidth:
-            spinButton.update()
-
-        # Get the zoomer placement bottom preference and set the bottom
-        # spin button value accordingly. Set the bottom spin button "max size"
-        # to the height of the target screen.  If there is no target screen
-        # set, use the default.
-        #
-        bottomPosition = prefs["magZoomerBottom"]
-        adjustment = gtk.Adjustment(
-            min(bottomPosition, targetHeight),
-            0, targetHeight, 
-            1,
-            targetHeight / 16, 0)
-
-        if orca_state.appOS:
-            spinButton = \
-                orca_state.appOS.get_widget("magZoomerBottomSpinButton")
-        else:
-            spinButton = \
-                orca_state.orcaOS.get_widget("magZoomerBottomSpinButton")
-        spinButton.set_adjustment(adjustment)
-        if bottomPosition > targetHeight:
-            spinButton.update()
-
     def _initGUIState(self):
         """Adjust the settings of the various components on the
         configuration GUI depending upon the users preferences.
@@ -1888,290 +1738,7 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
         # 1 is spoken.
         #
         label = _("Enable echo by cha_racter")
-        # TODO - JD: I did the above because GtkBuilder translator notes
-        # (which we have for the above string) are not getting sucked in
-        # to orca.pot. :-(
-
-        # Magnifier pane.
-        #
-        # Turn live updating off temporarily.
-        #
-        liveUpdating = self.enableLiveUpdating
-        self.enableLiveUpdating = False
         
-        # Set the sensitivity of the items on the magnifier pane, depending
-        # upon whether the "Enable Magnifier" checkbox is checked.
-        #
-        enable = prefs["enableMagnifier"]
-        self.get_widget("magnifierSupportCheckButton").set_active(enable)
-        self.get_widget("magnifierTable").set_sensitive(enable)
-
-        # Get the 'Cursor on/off' preference and set the checkbox accordingly.
-        # Set the sensitivity of the other cursor items depending upon this
-        # value.
-        #
-        value = prefs["enableMagCursor"]
-        self.get_widget("magCursorOnOffCheckButton").set_active(value)
-        self.get_widget("magCursorTable").set_sensitive(value)
-
-        # Get the 'Hide system cursor' preference and set the checkbox 
-        # accordingly.
-        #
-        value = prefs["magHideCursor"]
-        self.get_widget("magHideCursorCheckButton").set_active(value)
-
-        # Get the 'Explicit cursor size' preference and set the checkbox
-        # accordingly. If the value is not checked, then the cursor size
-        # spin button and label need to be set insensitive.
-        #
-        explicitSizeChecked = prefs["enableMagCursorExplicitSize"]
-        self.get_widget("magCursorSizeCheckButton").set_active( \
-                        explicitSizeChecked)
-        self.get_widget("magCursorSizeSpinButton").set_sensitive( \
-                        explicitSizeChecked)
-        self.get_widget("magCursorSizeLabel").set_sensitive( \
-                        explicitSizeChecked)
-
-        # Get the cursor size preference and set the cursor size spin
-        # button value accordingly.
-        #
-        cursorSize = prefs["magCursorSize"]
-        self.get_widget("magCursorSizeSpinButton").set_value(cursorSize)
-
-        # Get the cursor color preference and set the cursor color button
-        # accordingly.
-        #
-        cursorColor = prefs["magCursorColor"]
-        color = gtk.gdk.color_parse(cursorColor)
-        self.get_widget("magCursorColorButton").set_color(color)
-
-        # Get the 'Cross-hair on/off' preference and set the checkbox
-        # accordingly. Set the sensitivity of the other cross-hair items
-        # depending upon this value.
-        #
-        value = prefs["enableMagCrossHair"]
-        self.get_widget("magCrossHairOnOffCheckButton").set_active(value)
-        self.get_widget("magCrossHairTable").set_sensitive(value)
-
-        # Get the 'Cross-hair clip on/off' preference and set the checkbox
-        # accordingly.
-        #
-        value = prefs["enableMagCrossHairClip"]
-        self.get_widget("magCrossHairClipCheckButton").set_active(value)
-
-        # Get the cross-hair size preference and set the cross-hair size
-        # spin button value accordingly.
-        #
-        crosshairSize = prefs["magCrossHairSize"]
-        self.get_widget("magCrossHairSizeSpinButton").set_value(crosshairSize)
-
-        # Get the cross-hair color preference and set the cross-hair color
-        # button accordingly.
-        #
-        crosshairColor = prefs["magCrossHairColor"]
-        color = gtk.gdk.color_parse(crosshairColor)
-        self.get_widget("magCrossHairColorButton").set_color(color)
-
-        # Get the "Enable border" preference and set the checkbox
-        # accordingly. Set the sensitivity of the other items in the 
-        # border settings frame, depending upon whether this checkbox
-        # is checked.
-        #
-        value = prefs["enableMagZoomerBorder"]
-        self.get_widget("magBorderCheckButton").set_active(value)
-        self.get_widget("magBorderTable").set_sensitive(value)
-
-        # Get the border size preference and set the border size spin
-        # button value accordingly.
-        #
-        borderSize = prefs["magZoomerBorderSize"]
-        self.get_widget("magBorderSizeSpinButton").set_value(borderSize)
-
-        # Get the border color preference and set the border color button
-        # accordingly.
-        #
-        borderColor = prefs["magZoomerBorderColor"]
-        color = gtk.gdk.color_parse(borderColor)
-        self.get_widget("magBorderColorButton").set_color(color)
-
-        # Get the Brightness level and set its spin button value
-        # accordingly.
-        #
-        level = prefs["magBrightnessLevel"]
-        self.get_widget("magColorBrightnessSpinButton").set_value(level)
-
-        # Get the Contrast level and set its spin button value accordingly.
-        #
-        level = prefs["magContrastLevel"]
-        self.get_widget("magColorContrastSpinButton").set_value(level)
-
-        # Get the width and the height of the source screen. If there is
-        # no source screen set, use the default.
-        #
-        display = gtk.gdk.display_get_default()
-        nScreens = display.get_n_screens()
-        sourceScreen = display.get_default_screen()
-        sourceDisplay = orca_state.advancedMag.get_widget(\
-                              "magSourceDisplayEntry").get_active_text()
-        if sourceDisplay:
-            s = sourceDisplay.split(".")
-            try:
-                sourceNumber = int(s[-1])
-                if sourceNumber in range(0, nScreens):
-                    sourceScreen = display.get_screen(sourceNumber)
-            except:
-                pass
-
-        self.screenWidth = sourceScreen.get_width()
-        self.screenHeight = sourceScreen.get_height()
-
-        # Get the zoomer position type and set the active value for the
-        # zoomer position combobox accordingly.
-        #
-        zoomerPref = prefs["magZoomerType"]
-        if zoomerPref == settings.MAG_ZOOMER_TYPE_FULL_SCREEN:
-            # Translators: magnification will use the full screen.
-            #
-            zoomerType = _("Full Screen")
-        elif zoomerPref == settings.MAG_ZOOMER_TYPE_TOP_HALF:
-            # Translators: magnification will use the top half of the screen.
-            #
-            zoomerType = _("Top Half")
-        elif zoomerPref == settings.MAG_ZOOMER_TYPE_BOTTOM_HALF:
-            # Translators: magnification will use the bottom half of the screen.
-            #
-            zoomerType = _("Bottom Half")
-        elif zoomerPref == settings.MAG_ZOOMER_TYPE_LEFT_HALF:
-            # Translators: magnification will use the left half of the screen.
-            #
-            zoomerType = _("Left Half")
-        elif zoomerPref == settings.MAG_ZOOMER_TYPE_RIGHT_HALF:
-            # Translators: magnification will use the right half of the screen.
-            #
-            zoomerType = _("Right Half")
-        elif zoomerPref == settings.MAG_ZOOMER_TYPE_CUSTOM:
-            # Translators: the user has selected a custom area of the screen
-            # to use for magnification.
-            #
-            zoomerType = _("Custom")
-        else:
-            # Translators: this is an algorithm for magnifying pixels
-            # on the screen.
-            #
-            zoomerType = _("Full Screen")
-
-        magZoomerPositionComboBox = self.get_widget("magZoomerPositionComboBox")
-        types = [_("Full Screen"),
-                 _("Top Half"),
-                 _("Bottom Half"),
-                 _("Left Half"),
-                 _("Right Half"),
-                 _("Custom")]
-        self.populateComboBox(magZoomerPositionComboBox, types)
-        index = self.getComboBoxIndex(magZoomerPositionComboBox, zoomerType)
-        magZoomerPositionComboBox.set_active(index)
-
-        # Set the magnifier zoomer position items [in]sensensitive,
-        # depending upon the zoomer position type.
-        #
-        self.get_widget("magZoomerCustomPositionTable").\
-                set_sensitive(zoomerPref == settings.MAG_ZOOMER_TYPE_CUSTOM)
-
-        # Populate the zoomer spin buttons based on the size of the target
-        # display.
-        #
-        self._setZoomerSpinButtons()
-
-        # Get the zoom factor preference and set the zoom factor spin
-        # button value accordingly.
-        #
-        zoomFactor = prefs["magZoomFactor"]
-        self.get_widget("magZoomFactorSpinButton").set_value(zoomFactor)
-
-        # Get the 'Invert Colors' preference and set the checkbox accordingly.
-        #
-        value = prefs["enableMagZoomerColorInversion"]
-        self.get_widget("magInvertColorsCheckBox").set_active(value)
-
-        # Get the mouse tracking preference and set the active value for
-        # the mouse tracking combobox accordingly.
-        #
-        mouseTrackingMode = prefs["magMouseTrackingMode"]
-        if mouseTrackingMode == settings.MAG_TRACKING_MODE_CENTERED:
-            mode = self.magTrackingCenteredStr
-        elif mouseTrackingMode == settings.MAG_TRACKING_MODE_NONE:
-            mode = self.magTrackingNoneStr
-        elif mouseTrackingMode == settings.MAG_TRACKING_MODE_PROPORTIONAL:
-            mode = self.magTrackingProportionalStr
-        elif mouseTrackingMode == settings.MAG_TRACKING_MODE_PUSH:
-            mode = self.magTrackingPushStr
-        else:
-            mode = self.magTrackingCenteredStr
-        magMouseTrackingComboBox = self.get_widget("magMouseTrackingComboBox")
-        trackingTypes = \
-            [_("Centered"), _("Proportional"), _("Push"), _("None")]
-        self.populateComboBox(magMouseTrackingComboBox, trackingTypes)
-        index = self.getComboBoxIndex(magMouseTrackingComboBox, mode)
-        magMouseTrackingComboBox.set_active(index)
-
-        # Get the control and menu item tracking preference and set the 
-        # active value for the control and menu item tracking combobox 
-        # accordingly.
-        #
-        controlTrackingMode = prefs["magControlTrackingMode"]
-        if controlTrackingMode == settings.MAG_TRACKING_MODE_CENTERED:
-            mode = self.magTrackingCenteredStr
-        elif controlTrackingMode == settings.MAG_TRACKING_MODE_NONE:
-            mode = self.magTrackingNoneStr
-        elif controlTrackingMode == settings.MAG_TRACKING_MODE_PUSH:
-            mode = self.magTrackingPushStr
-        else:
-            mode = self.magTrackingPushStr
-        magControlTrackingComboBox = \
-                         self.get_widget("magControlTrackingComboBox")
-        trackingTypes = [_("Centered"), _("Push"), _("None")]
-        self.populateComboBox(magControlTrackingComboBox, trackingTypes)
-        index = self.getComboBoxIndex(magControlTrackingComboBox, mode)
-        magControlTrackingComboBox.set_active(index)
-
-        # Get the text cursor tracking preference and set the active value
-        # for the text cursor tracking combobox accordingly.
-        #
-        textCursorTrackingMode = prefs["magTextTrackingMode"]
-        if textCursorTrackingMode == settings.MAG_TRACKING_MODE_CENTERED:
-            mode = self.magTrackingCenteredStr
-        elif textCursorTrackingMode == settings.MAG_TRACKING_MODE_NONE:
-            mode = self.magTrackingNoneStr
-        elif textCursorTrackingMode == settings.MAG_TRACKING_MODE_PUSH:
-            mode = self.magTrackingPushStr
-        else:
-            mode = self.magTrackingPushStr
-        magTextCursorTrackingComboBox = \
-                         self.get_widget("magTextCursorTrackingComboBox")
-        self.populateComboBox(magTextCursorTrackingComboBox, trackingTypes)
-        index = self.getComboBoxIndex(magTextCursorTrackingComboBox, mode)
-        magTextCursorTrackingComboBox.set_active(index)
-        self.get_widget("magEdgeMarginHBox").\
-            set_sensitive(textCursorTrackingMode == \
-                                       settings.MAG_TRACKING_MODE_PUSH)
-
-        # Get the edge margin preference for cursor tracking and set the
-        # value of the edge margin spin button accordingly.
-        #
-        edgeMargin = prefs["magEdgeMargin"]
-        magEdgeMarginSpinButton = self.get_widget("magEdgeMarginSpinButton")
-        adjustment = gtk.Adjustment(edgeMargin, 0, 50, 1, 5, 0)
-        self.get_widget("magEdgeMarginSpinButton").set_adjustment(adjustment)
-
-        # Get the preferences for what the pointer "follows" and set the
-        # values of the pointer follows focus and pointer follows zoomer
-        # checkboxes accordingly.
-        #
-        value = prefs["magPointerFollowsFocus"]
-        self.get_widget("magPointerFocusCheckButton").set_active(value)
-        value = prefs["magPointerFollowsZoomer"]
-        self.get_widget("magPointerZoomerCheckButton").set_active(value)
-
         # Text attributes pane.
         #
         self._createTextAttributesTreeView()
@@ -2211,8 +1778,6 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
         else:
             self.get_widget("generalLaptopButton").set_active(True)
 
-        self.enableLiveUpdating = liveUpdating
-
         self.enableAutostart = settings.isOrcaAutostarted()
         self.get_widget("autostartOrcaCheckButton").set_active( \
                          self.enableAutostart)
@@ -3353,809 +2918,171 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
                 self.prefsDict["brailleVerbosityLevel"] = \
                     settings.VERBOSITY_LEVEL_VERBOSE
 
-    def magnifierSupportChecked(self, widget):
-        """Signal handler for the "toggled" signal for the
-           magnifierSupportCheckbutton GtkCheckButton widget.
-           The user has [un]checked the 'Enable Magnification' checkbox.
-           Set the 'enableMagnifier' preference to the new value.
-           Set the rest of the magnifier pane items [in]sensensitive
-           depending upon whether this checkbox is checked.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
+    def keyModifiedToggle(self, cell, path, model, col):
+        """When the user changes a checkbox field (boolean field)"""
 
-        enable = widget.get_active()
-        if self.enableLiveUpdating and widget.is_focus():
-            if enable:
-                mag.init()
-                # If the Zoomer settings position is full screen, and
-                # we are full screen capable and we are capable of
-                # hiding or showing the system pointer, then show the
-                # Hide system cursor checkbox.
-                #
-                isFullScreen = (self.prefsDict["magZoomerType"] \
-                                == settings.MAG_ZOOMER_TYPE_FULL_SCREEN)
-                self.get_widget("magHideCursorCheckButton").set_sensitive(
-                    mag.isFullScreenCapable() and isFullScreen)
-            else:
-                mag.shutdown()
-        self.prefsDict["enableMagnifier"] = enable
-        self.get_widget("magnifierTable").set_sensitive(enable)
+        model[path][col] = not model[path][col]
+        return
 
-    def magCursorOnOffChecked(self, widget):
-        """Signal handler for the "toggled" signal for the
-           magCursorOnOffCheckButton GtkCheckButton widget.
-           The user has [un]checked the magnification cursor settings
-           'Cursor on/off' checkbox. Set the 'enableMagCursor' preference
-           to the new value. Set the sensitivity of the other cursor items
-           depending upon this new value.
+    def editingKey(self, cell, editable, path, treeModel):
+        """Starts user input of a Key for a selected key binding"""
 
-        Arguments:
-        - widget: the component that generated the signal.
-        """
+        # Translators: this is a spoken prompt asking the user to press
+        # a new key combination (e.g., Alt+Ctrl+g) to create a new
+        # key bindings.
+        #
+        self._presentMessage(_("enter new key"))
+        orca_state.capturingKeys = True
+        editable.connect('key-press-event', self.kbKeyPressed)
+        return
 
-        enableCursor = widget.get_active()
-        if self.enableLiveUpdating and widget.is_focus():
-            custom = self.get_widget("magCursorSizeCheckButton").get_active()
-            size = \
-                 self.get_widget("magCursorSizeSpinButton").get_value_as_int()
-            mag.setMagnifierCursor(enableCursor, custom, size)
-        self.prefsDict["enableMagCursor"] = enableCursor
-        self.get_widget("magCursorTable").set_sensitive(enableCursor)
+    def editingCanceledKey(self, editable):
+        """Stops user input of a Key for a selected key binding"""
 
-    def magCursorExplicitSizeChecked(self, widget):
-        """Signal handler for the "toggled" signal for the
-           magCursorSizeCheckButton GtkCheckButton widget.
-           The user has [un]checked the magnification cursor settings
-           'Explicit cursor size' checkbox. Set the
-           'enableMagCursorExplicitSize' preference to the new value.
-           [Un]sensitize the cursor size spin button and label depending
-           upon whether this checkbox is checked.
+        orca_state.capturingKeys = False
+        return
 
-        Arguments:
-        - widget: the component that generated the signal.
+    def kbKeyPressed(self, editable, event):
+        """Special handler for the key_pressed events when editing the
+        keybindings.  This lets us control what gets inserted into the
+        entry.
         """
 
-        enable = widget.get_active()
-        if self.enableLiveUpdating and widget.is_focus():
-            size = \
-                 self.get_widget("magCursorSizeSpinButton").get_value_as_int()
-            mag.setMagnifierCursor(True, enable, size)
-        self.prefsDict["enableMagCursorExplicitSize"] = enable
-        self.get_widget("magCursorSizeSpinButton").set_sensitive(enable)
-        self.get_widget("magCursorSizeLabel").set_sensitive(enable)
-
-    def magCursorSizeValueChanged(self, widget):
-        """Signal handler for the "value_changed" signal for the
-           magCursorSizeSpinButton GtkSpinButton widget.
-           The user has changed the value of the magnification
-           cursor settings cursor size spin button. Set the
-           'magCursorSize' preference to the new integer value.
+        captured = orca_state.lastCapturedKey
+        if not captured or captured.event_string in ["Return", "Escape"]:
+            return False
 
-        Arguments:
-        - widget: the component that generated the signal.
-        """
+        keyName = captured.event_string
+        isOrcaModifier = captured.modifiers & settings.ORCA_MODIFIER_MASK
+        if keyName in ["Delete", "BackSpace"] and not isOrcaModifier:
+            editable.set_text("")
+            # Translators: this is a spoken prompt letting the user know
+            # Orca has deleted an existing key combination based upon
+            # their input.
+            #
+            self._presentMessage(
+                _("Key binding deleted. Press enter to confirm."))
+            self.newBinding = None
+            return True
+
+        clickCount = orca_state.clickCount
+        self.newBinding = keybindings.KeyBinding(keyName,
+                                                 settings.defaultModifierMask,
+                                                 captured.modifiers,
+                                                 None,
+                                                 clickCount)
+        modifierNames = keybindings.getModifierNames(captured.modifiers)
+        clickCount = self._clickCountToString(clickCount)
+        newString = modifierNames + keyName + clickCount
+        description = self.pendingKeyBindings.get(newString)
+        if description is None \
+           and self.kbindings.hasKeyBinding(self.newBinding, "keysNoMask"):
+            handler = self.kbindings.getInputHandler(captured)
+            if handler:
+                description = handler.description
 
-        size = widget.get_value_as_int()
-        if self.enableLiveUpdating and widget.is_focus():
-            mag.setMagnifierCursor(True, True, size)
-        self.prefsDict["magCursorSize"] = size
+        if description:
+            # Translators: this is a spoken prompt letting the user know
+            # that the key combination (e.g., Ctrl+Alt+f) they just
+            # entered has already been bound to another command.
+            #
+            msg = _("The key entered is already bound to %s") % description
+        else:
+            # Translators: this is a spoken prompt letting the user know Orca
+            # know Orca has recorded a new key combination (e.g., Alt+Ctrl+g)
+            # based upon their input.
+            #
+            msg = _("Key captured: %s. Press enter to confirm.") % newString
+            editable.set_text(newString)
 
-    def magCursorColorSet(self, widget):
-        """Signal handler for the "color_set" signal for the
-           magCursorColorButton GtkColorButton widget.
-           The user has changed the value of the magnification
-           cursor settings cursor color button. Set the 'magCursorColor'
-           preference to the new value.
+        self._presentMessage(msg)
+        return True
 
-        Arguments:
-        - widget: the component that generated the signal.
+    def editedKey(self, cell, path, new_text, treeModel,
+                  modMask, modUsed, key, click_count, text):
+        """The user changed the key for a Keybinding: update the model of
+        the treeview.
         """
 
-        color = widget.get_color()
-        cursorColor = "#%04X%04X%04X" % (color.red, color.green, color.blue)
-        if self.enableLiveUpdating and widget.is_focus():
-            mag.setMagnifierObjectColor("cursor-color", cursorColor)
-
-            # For some reason, live updating of the cursor color is not
-            # working. Toggling the visibility with setMagnifierCursor()
-            # seems to force the updating we want.
-            #
-            size = \
-                 self.get_widget("magCursorSizeSpinButton").get_value_as_int()
-            mag.setMagnifierCursor(False, False, 0)
-            mag.setMagnifierCursor(True, True, size)
+        orca_state.capturingKeys = False
+        myiter = treeModel.get_iter_from_string(path)
+        originalBinding = treeModel.get_value(myiter, text)
+        modified = (originalBinding != new_text)
 
-        self.prefsDict["magCursorColor"] = cursorColor
+        try:
+            string = self.newBinding.keysymstring
+            mods = self.newBinding.modifiers
+            clickCount = self.newBinding.click_count
+        except:
+            string = None
+            mods = 0
+            clickCount = 1
 
-    def magCrossHairOnOffChecked(self, widget):
-        """Signal handler for the "toggled" signal for the
-           magCrossHairOnOffCheckButton GtkCheckButton widget.
-           The user has [un]checked the magnification cross-hair settings
-           'Cross-hair on/off' checkbox. Set the 'enableMagCrossHair'
-           preference to the new value. Set the sensitivity of the other
-           cross-hair items depending upon this new value.
+        treeModel.set(myiter,
+                      modMask, str(settings.defaultModifierMask),
+                      modUsed, str(mods),
+                      key, string,
+                      text, new_text,
+                      click_count, str(clickCount),
+                      MODIF, modified)
+        speech.stop()
+        if new_text:
+            # Translators: this is a spoken prompt confirming the key
+            # combination (e.g., Ctrl+Alt+f) the user just typed when
+            # creating a new key binding.
+            #
+            message = _("The new key is: %s") % new_text
+            description = treeModel.get_value(myiter, DESCRIP)
+            self.pendingKeyBindings[new_text] = description
+        else:
+            # Translators: this is a spoken prompt confirming that an
+            # existing key combination (e.g., Ctrl+Alt+f) that was
+            # associated with a command has been deleted.
+            #
+            message = _("The keybinding has been removed.")
 
-        Arguments:
-        - widget: the component that generated the signal.
-        """
+        if modified:
+            self._presentMessage(message)
+            self.pendingKeyBindings[originalBinding] = ""
 
-        value = widget.get_active()
-        if self.enableLiveUpdating and widget.is_focus():
-            mag.setMagnifierCrossHair(value)
-        self.prefsDict["enableMagCrossHair"] = value
-        self.get_widget("magCrossHairTable").set_sensitive(value)
+        return
 
-    def magCrossHairClipOnOffChecked(self, widget):
+    def presentToolTipsChecked(self, widget):
         """Signal handler for the "toggled" signal for the
-           magCrossHairClipCheckButton GtkCheckButton widget.
-           The user has [un]checked the magnification cross-hair settings
-           'Cross-hair clip on/off' checkbox. Set the 'enableMagCrossHairClip'
-           preference to the new value.
+           presentToolTipsCheckButton GtkCheckButton widget.
+           The user has [un]checked the 'Present ToolTips'
+           checkbox. Set the 'presentToolTips'
+           preference to the new value if the user can present tooltips.
 
         Arguments:
         - widget: the component that generated the signal.
         """
 
-        value = widget.get_active()
-        if self.enableLiveUpdating and widget.is_focus():
-            mag.setMagnifierCrossHairClip(value)
-        self.prefsDict["enableMagCrossHairClip"] = value
+        self.prefsDict["presentToolTips"] = \
+            widget.get_active() \
+            and _settingsManager.getSetting('canPresentToolTips')
 
-    def magCrossHairSizeValueChanged(self, widget):
-        """Signal handler for the "value_changed" signal for the
-           magCrossHairSizeSpinButton GtkSpinButton widget.
-           The user has changed the value of the magnification
-           cross-hair settings cross-hair size spin button. Set the
-           'magCrossHairSize' preference to the new integer value.
+    def disableKeyGrabChecked(self, widget):
+        """Signal handler for the "toggled" signal for the
+           disableKeyGrabCheckButton GtkCheckButton widget.
+           The user has [un]checked the 'Disable gksu keyboard grab'
+           checkbox. Set the gconf '/apps/gksu/disable-grab' resource
+           to the new value.
 
         Arguments:
         - widget: the component that generated the signal.
         """
 
-        value = widget.get_value_as_int()
-        if self.enableLiveUpdating and widget.is_focus():
-            mag.setMagnifierObjectSize("crosswire-size", value)
-        self.prefsDict["magCrossHairSize"] = value
+        self.disableKeyGrabPref = widget.get_active()
 
-    def magCrossHairColorSet(self, widget):
-        """Signal handler for the "color_set" signal for the
-           magCrossHairColorButton GtkColorButton widget.
-           The user has changed the value of the magnification
-           cross-hair settings cross-hair color button. Set the 
-           'magCrossHairColor' preference to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        color = widget.get_color()
-        crossHairColor = "#%04X%04X%04X" % (color.red, color.green, color.blue)
-        if self.enableLiveUpdating and widget.is_focus():
-            mag.setMagnifierObjectColor("crosswire-color", crossHairColor)
-        self.prefsDict["magCrossHairColor"] = crossHairColor
-
-    def magZoomerPositionChanged(self, widget):
-        """Signal handler for the "changed" signal for the
-           magZoomerPositionComboBox GtkComboBox widget.
-           The user has changed the zoomer position type. Set the 
-           'magZoomerType' preference to the new value. 
-           Set the magnifier zoomer position items [in]sensensitive, 
-           depending upon the new zoomer position type.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        zoomerType = widget.get_active()
-        self.prefsDict["magZoomerType"] = zoomerType
-
-        self.get_widget("magZoomerCustomPositionTable").\
-                set_sensitive(zoomerType == settings.MAG_ZOOMER_TYPE_CUSTOM)
-
-        enableBorder = (zoomerType != settings.MAG_ZOOMER_TYPE_FULL_SCREEN)
-        checkButton = self.get_widget("magBorderCheckButton")
-        checkButton.set_sensitive(enableBorder)
-
-        checked = checkButton.get_active()
-        size = 0
-        if checked and enableBorder:
-            self.get_widget("magBorderTable").set_sensitive(enableBorder)
-            size = \
-                 self.get_widget("magBorderSizeSpinButton").get_value_as_int()
-
-        # If the Zoomer settings position is full screen, and we are full
-        # screen capable and we are capable of hiding or showing the system
-        # pointer, then show the Hide system cursor checkbox.
-        #
-        isFullScreen = (zoomerType == settings.MAG_ZOOMER_TYPE_FULL_SCREEN)
-        self.get_widget("magHideCursorCheckButton").set_sensitive(
-            mag.isFullScreenCapable() and isFullScreen)
-
-        # Also if it's not full screen, then automatically clear the 
-        # 'hide cursor' preference and check box.
-        #
-        if not isFullScreen:
-            self.prefsDict["magHideCursor"] = False
-            self.get_widget("magHideCursorCheckButton").set_active(False)
-
-        if not self.enableLiveUpdating:
-            return
-
-        if zoomerType == settings.MAG_ZOOMER_TYPE_CUSTOM:
-            top = \
-                self.get_widget("magZoomerTopSpinButton").get_value_as_int()
-            left = \
-                 self.get_widget("magZoomerLeftSpinButton").get_value_as_int()
-            right = \
-                  self.get_widget("magZoomerRightSpinButton").get_value_as_int()
-            bottom = \
-               self.get_widget("magZoomerBottomSpinButton").get_value_as_int()
-            if not (top == bottom == left == right):
-                mag.setupMagnifier(zoomerType, left, top, right, bottom,
-                                   self.prefsDict)
-        else:
-            mag.setupMagnifier(zoomerType, restore=self.prefsDict)
-        mag.setZoomerObjectSize("border-size", size)
-
-    def magHideCursorChecked(self, widget):
-        """Signal handler for the "toggled" signal for the
-           magHideCursorCheckButton GtkCheckButton widget. The user
-           has [un]checked the hide system cursor checkbox. Set the
-           'magHideCursor' preference to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        checked = widget.get_active()
-        self.prefsDict["magHideCursor"] = checked
-
-        if self.enableLiveUpdating:
-            mag.hideSystemPointer(checked)
-
-    def magZoomerTopValueChanged(self, widget):
-        """Signal handler for the "value_changed" signal for the
-           magZoomerTopSpinButton GtkSpinButton widget.
-           The user has changed the value of the magnification
-           zoomer placement top spin button. Set the 'magZoomerTop'
-           preference to the new integer value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        top = widget.get_value_as_int()
-        self.prefsDict["magZoomerTop"] = top
-        if not (self.enableLiveUpdating and widget.is_focus()):
-            return
-
-        bottomSpinButton = self.get_widget("magZoomerBottomSpinButton")
-        bottomSpinButton.get_adjustment().set_lower(top)
-
-        left = self.get_widget("magZoomerLeftSpinButton").get_value_as_int()
-        right = self.get_widget("magZoomerRightSpinButton").get_value_as_int()
-        bottom = bottomSpinButton.get_value_as_int()
-        mag.setupMagnifier(settings.MAG_ZOOMER_TYPE_CUSTOM,
-                           left, top, right, bottom, self.prefsDict)
-
-    def magZoomerBottomValueChanged(self, widget):
-        """Signal handler for the "value_changed" signal for the
-           magZoomerBottomSpinButton GtkSpinButton widget.
-           The user has changed the value of the magnification
-           zoomer placement bottom spin button. Set the 'magZoomerBottom'
-           preference to the new integer value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        bottom = widget.get_value_as_int()
-        self.prefsDict["magZoomerBottom"] = bottom
-        if not (self.enableLiveUpdating and widget.is_focus()):
-            return
-
-        topSpinButton = self.get_widget("magZoomerTopSpinButton")
-        topSpinButton.get_adjustment().set_upper(bottom)
-
-        left = self.get_widget("magZoomerLeftSpinButton").get_value_as_int()
-        top = topSpinButton.get_value_as_int()
-        right = self.get_widget("magZoomerRightSpinButton").get_value_as_int()
-        mag.setupMagnifier(settings.MAG_ZOOMER_TYPE_CUSTOM,
-                           left, top, right, bottom, self.prefsDict)
-
-    def magZoomerLeftValueChanged(self, widget):
-        """Signal handler for the "value_changed" signal for the
-           magZoomerLeftSpinButton GtkSpinButton widget.
-           The user has changed the value of the magnification
-           zoomer placement left spin button. Set the 'magZoomerLeft'
-           preference to the new integer value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        left = widget.get_value_as_int()
-        self.prefsDict["magZoomerLeft"] = left
-        if not (self.enableLiveUpdating and widget.is_focus()):
-            return
-
-        rightSpinButton = self.get_widget("magZoomerRightSpinButton")
-        rightSpinButton.get_adjustment().set_lower(left)
-
-        top = self.get_widget("magZoomerTopSpinButton").get_value_as_int()
-        right = rightSpinButton.get_value_as_int()
-        bottom = \
-               self.get_widget("magZoomerBottomSpinButton").get_value_as_int()
-        mag.setupMagnifier(settings.MAG_ZOOMER_TYPE_CUSTOM,
-                           left, top, right, bottom, self.prefsDict)
-
-    def magZoomerRightValueChanged(self, widget):
-        """Signal handler for the "value_changed" signal for the
-           magZoomerRightSpinButton GtkSpinButton widget.
-           The user has changed the value of the magnification
-           zoomer placement right spin button. Set the 'magZoomerRight'
-           preference to the new integer value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        right = widget.get_value_as_int()
-        self.prefsDict["magZoomerRight"] = right
-        if not (self.enableLiveUpdating and widget.is_focus()):
-            return
-
-        leftSpinButton = self.get_widget("magZoomerLeftSpinButton")
-        leftSpinButton.get_adjustment().set_upper(right)
-
-        left = leftSpinButton.get_value_as_int()
-        top = self.get_widget("magZoomerTopSpinButton").get_value_as_int()
-        bottom = \
-               self.get_widget("magZoomerBottomSpinButton").get_value_as_int()
-        mag.setupMagnifier(settings.MAG_ZOOMER_TYPE_CUSTOM,
-                           left, top, right, bottom, self.prefsDict)
-
-    def magZoomFactorValueChanged(self, widget):
-        """Signal handler for the "value_changed" signal for the
-           magZoomFactorSpinButton GtkSpinButton widget.
-           The user has changed the value of the magnification
-           zoom factor spin button. Set the 'magZoomFactor'
-           preference to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        value = widget.get_value()
-        if self.enableLiveUpdating and widget.is_focus():
-            mag.setZoomerMagFactor(value, value)
-        self.prefsDict["magZoomFactor"] = value
-
-    def magBorderChecked(self, widget):
-        """Signal handler for the "toggled" signal for the
-           magBorderCheckButton GtkCheckButton widget.
-           The user has [un]checked the magnification border settings
-           'Enable border' checkbox. Set the 'enableMagZoomerBorder'
-           preference to the new value and set the sensitivity of the
-           other magnification border items depending upon this new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        value = widget.get_active()
-        self.prefsDict["enableMagZoomerBorder"] = value
-        self.get_widget("magBorderTable").set_sensitive(value)
-        if not (self.enableLiveUpdating and widget.is_focus()):
-            return
-
-        size = self.get_widget("magBorderSizeSpinButton").get_value_as_int()
-        if not value:
-            size = 0
-        mag.setZoomerObjectSize("border-size", size)
-
-    def magBorderSizeValueChanged(self, widget):
-        """Signal handler for the "value_changed" signal for the
-           magBorderSizeSpinButton GtkSpinButton widget.
-           The user has changed the value of the magnification
-           border settings border size spin button. Set the
-           'magZoomerBorderSize' preference to the new integer value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        value = widget.get_value_as_int()
-        if self.enableLiveUpdating and widget.is_focus():
-            mag.setZoomerObjectSize("border-size", value)
-        self.prefsDict["magZoomerBorderSize"] = value
-
-    def magBorderColorSet(self, widget):
-        """Signal handler for the "color_set" signal for the
-           magBorderColorButton GtkColorButton widget.
-           The user has changed the value of the magnification
-           cursor settings cursor color button. Set the 'magZoomerBorderColor'
-           preference to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        color = widget.get_color()
-        borderColor = "#%04X%04X%04X" % (color.red, color.green, color.blue)
-        if self.enableLiveUpdating and widget.is_focus():
-            mag.setZoomerObjectColor("border-color", borderColor)
-        self.prefsDict["magZoomerBorderColor"] = borderColor
-
-    def magColorBrightnessValueChanged(self, widget):
-        """Signal handler for the "value_changed" signal for the
-           magColorBrightnessSpinButton GtkSpinButton widget.
-           The user has changed the value of the magnification
-           color settings brightness spin button. Set the 'magBrightnessLevel'
-           preference to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        value = round(widget.get_value(), 2)
-        self.prefsDict["magBrightnessLevel"] = value
-        if not (self.enableLiveUpdating and widget.is_focus()):
-            return
-
-        r = self.prefsDict["magBrightnessLevelRed"] + value
-        g = self.prefsDict["magBrightnessLevelGreen"] + value
-        b = self.prefsDict["magBrightnessLevelBlue"] + value
-        mag.setZoomerBrightness(r, g, b)
-
-    def magColorContrastValueChanged(self, widget):
-        """Signal handler for the "value_changed" signal for the
-           magColorContrastSpinButton GtkSpinButton widget.
-           The user has changed the value of the magnification
-           color settings contrast spin button. Set the 'magContrastLevel'
-           preference to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        value = round(widget.get_value(), 2)
-        self.prefsDict["magContrastLevel"] = value
-        if not (self.enableLiveUpdating and widget.is_focus()):
-            return
-
-        r = self.prefsDict["magContrastLevelRed"] + value
-        g = self.prefsDict["magContrastLevelGreen"] + value
-        b = self.prefsDict["magContrastLevelBlue"] + value
-        mag.setZoomerContrast(r, g, b)
-
-    def magAdvancedButtonClicked(self, widget):
-        """Signal handler for the "clicked" signal for the magAdvancedButton
-           GtkButton widget. The user has clicked the Advanced Settings
-           button.  Save the current state of the preferences for the settings
-           on the dialog, and show it.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        orca_state.advancedMag.saveAdvancedSettings(self.prefsDict)
-        orca_state.advancedMagDialog.show()
-
-    def magMouseTrackingChanged(self, widget):
-        """Signal handler for the "changed" signal for the
-           magMouseTrackingComboBox GtkComboBox widget. The user has
-           selected a different magnification mouse tracking style.
-           Set the 'magMouseTrackingMode' preference to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        mouseTrackingMode = widget.get_active_text()
-        if mouseTrackingMode == self.magTrackingCenteredStr:
-            mode = settings.MAG_TRACKING_MODE_CENTERED
-
-        elif mouseTrackingMode == self.magTrackingPushStr:
-            mode = settings.MAG_TRACKING_MODE_PUSH
-
-        elif mouseTrackingMode == self.magTrackingProportionalStr:
-            mode = settings.MAG_TRACKING_MODE_PROPORTIONAL
-
-        elif mouseTrackingMode == self.magTrackingNoneStr:
-            mode = settings.MAG_TRACKING_MODE_NONE
-
-        else:
-            mode = settings.MAG_TRACKING_MODE_CENTERED
-
-        self.prefsDict["magMouseTrackingMode"] = mode
-        mag.updateMouseTracking(mode)
-
-    def magControlTrackingChanged(self, widget):
-        """Signal handler for the "changed" signal for the
-           magControlTrackingComboBox GtkComboBox widget. The user has
-           selected a different magnification control and menu item
-           tracking style. Set the 'magControlTrackingMode' preference 
-           to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        controlTrackingMode = widget.get_active_text()
-        if controlTrackingMode == self.magTrackingCenteredStr:
-            mode = settings.MAG_TRACKING_MODE_CENTERED
-
-        elif controlTrackingMode == self.magTrackingPushStr:
-            mode = settings.MAG_TRACKING_MODE_PUSH
-
-        elif controlTrackingMode == self.magTrackingNoneStr:
-            mode = settings.MAG_TRACKING_MODE_NONE
-
-        else:
-            mode = settings.MAG_TRACKING_MODE_PUSH
-
-        self.prefsDict["magControlTrackingMode"] = mode
-        mag.updateControlTracking(mode)
-
-    def magTextTrackingChanged(self, widget):
-        """Signal handler for the "changed" signal for the
-           magTextCursorTrackingComboBox GtkComboBox widget. The user has
-           selected a different magnification text cursor tracking style.
-           Set the 'magTextCursorTrackingMode' preference to the new value
-           and grey out the edge margin widget unless the mode is "Push".
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        textCursorTrackingMode = widget.get_active_text()
-        if textCursorTrackingMode == self.magTrackingCenteredStr:
-            mode = settings.MAG_TRACKING_MODE_CENTERED
-
-        elif textCursorTrackingMode == self.magTrackingPushStr:
-            mode = settings.MAG_TRACKING_MODE_PUSH
-
-        elif textCursorTrackingMode == self.magTrackingNoneStr:
-            mode = settings.MAG_TRACKING_MODE_NONE
-
-        else:
-            mode = settings.MAG_TRACKING_MODE_PUSH
-
-        self.prefsDict["magTextTrackingMode"] = mode
-        self.get_widget("magEdgeMarginHBox").\
-                set_sensitive(mode == settings.MAG_TRACKING_MODE_PUSH)
-
-        mag.updateTextTracking(mode)
-
-    def magEdgeMarginValueChanged(self, widget):
-        """Signal handler for the "value_changed" signal for the
-           magEdgeMarginSpinButton GtkSpinButton widget.
-           The user has changed the value of the magnification
-           edge margin spin button. Set the 'magEdgeMargin' preference 
-           to the new integer value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        value = widget.get_value_as_int()
-        self.prefsDict["magEdgeMargin"] = value
-        mag.updateEdgeMargin(value)
-
-    def magPointerFocusChecked(self, widget):
-        """Signal handler for the "toggled" signal for the
-           magPointerFocusCheckButton GtkCheckButton widget. The user
-           has [un]checked the pointer follows focus checkbox. Set the
-           'magPointerFollowsFocus' preference to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        enabled = widget.get_active()
-        self.prefsDict["magPointerFollowsFocus"] = enabled
-        if self.enableLiveUpdating and widget.is_focus():
-            mag.updatePointerFollowsFocus(enabled)
-
-    def magPointerZoomerChecked(self, widget):
-        """Signal handler for the "toggled" signal for the
-           magPointerZoomerCheckButton GtkCheckButton widget. The user
-           has [un]checked the pointer follows zoomer checkbox. Set the
-           'magPointerFollowsZoomer' preference to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        enabled = widget.get_active()
-        self.prefsDict["magPointerFollowsZoomer"] = enabled
-        if self.enableLiveUpdating and widget.is_focus():
-            mag.updatePointerFollowsZoomer(enabled)
-
-    def magInvertColorsChecked(self, widget):
-        """Signal handler for the "toggled" signal for the
-           magCrossHairOnOffCheckButton GtkCheckButton widget.
-           The user has [un]checked the magnification 'Invert Colors'
-           checkbox. Set the 'enableMagZoomerColorInversion' preference
-           to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        value = widget.get_active()
-        if self.enableLiveUpdating and widget.is_focus():
-            mag.setZoomerColorInversion(value)
-        self.prefsDict["enableMagZoomerColorInversion"] = value
-
-    def keyModifiedToggle(self, cell, path, model, col):
-        """When the user changes a checkbox field (boolean field)"""
-
-        model[path][col] = not model[path][col]
-        return
-
-    def editingKey(self, cell, editable, path, treeModel):
-        """Starts user input of a Key for a selected key binding"""
-
-        # Translators: this is a spoken prompt asking the user to press
-        # a new key combination (e.g., Alt+Ctrl+g) to create a new
-        # key bindings.
-        #
-        self._presentMessage(_("enter new key"))
-        orca_state.capturingKeys = True
-        editable.connect('key-press-event', self.kbKeyPressed)
-        return
-
-    def editingCanceledKey(self, editable):
-        """Stops user input of a Key for a selected key binding"""
-
-        orca_state.capturingKeys = False
-        return
-
-    def kbKeyPressed(self, editable, event):
-        """Special handler for the key_pressed events when editing the
-        keybindings.  This lets us control what gets inserted into the
-        entry.
-        """
-
-        captured = orca_state.lastCapturedKey
-        if not captured or captured.event_string in ["Return", "Escape"]:
-            return False
-
-        keyName = captured.event_string
-        isOrcaModifier = captured.modifiers & settings.ORCA_MODIFIER_MASK
-        if keyName in ["Delete", "BackSpace"] and not isOrcaModifier:
-            editable.set_text("")
-            # Translators: this is a spoken prompt letting the user know
-            # Orca has deleted an existing key combination based upon
-            # their input.
-            #
-            self._presentMessage(
-                _("Key binding deleted. Press enter to confirm."))
-            self.newBinding = None
-            return True
-
-        clickCount = orca_state.clickCount
-        self.newBinding = keybindings.KeyBinding(keyName,
-                                                 settings.defaultModifierMask,
-                                                 captured.modifiers,
-                                                 None,
-                                                 clickCount)
-        modifierNames = keybindings.getModifierNames(captured.modifiers)
-        clickCount = self._clickCountToString(clickCount)
-        newString = modifierNames + keyName + clickCount
-        description = self.pendingKeyBindings.get(newString)
-        if description is None \
-           and self.kbindings.hasKeyBinding(self.newBinding, "keysNoMask"):
-            handler = self.kbindings.getInputHandler(captured)
-            if handler:
-                description = handler.description
-
-        if description:
-            # Translators: this is a spoken prompt letting the user know
-            # that the key combination (e.g., Ctrl+Alt+f) they just
-            # entered has already been bound to another command.
-            #
-            msg = _("The key entered is already bound to %s") % description
-        else:
-            # Translators: this is a spoken prompt letting the user know Orca
-            # know Orca has recorded a new key combination (e.g., Alt+Ctrl+g)
-            # based upon their input.
-            #
-            msg = _("Key captured: %s. Press enter to confirm.") % newString
-            editable.set_text(newString)
-
-        self._presentMessage(msg)
-        return True
-            
-    def editedKey(self, cell, path, new_text, treeModel, 
-                  modMask, modUsed, key, click_count, text):
-        """The user changed the key for a Keybinding: update the model of
-        the treeview.
-        """
-
-        orca_state.capturingKeys = False
-        myiter = treeModel.get_iter_from_string(path)
-        originalBinding = treeModel.get_value(myiter, text)
-        modified = (originalBinding != new_text)
-
-        try:
-            string = self.newBinding.keysymstring
-            mods = self.newBinding.modifiers
-            clickCount = self.newBinding.click_count
-        except:
-            string = None
-            mods = 0
-            clickCount = 1
-
-        treeModel.set(myiter,
-                      modMask, str(settings.defaultModifierMask),
-                      modUsed, str(mods),
-                      key, string,
-                      text, new_text,
-                      click_count, str(clickCount),
-                      MODIF, modified)
-        speech.stop()
-        if new_text:
-            # Translators: this is a spoken prompt confirming the key
-            # combination (e.g., Ctrl+Alt+f) the user just typed when
-            # creating a new key binding.
-            #
-            message = _("The new key is: %s") % new_text
-            description = treeModel.get_value(myiter, DESCRIP)
-            self.pendingKeyBindings[new_text] = description
-        else:
-            # Translators: this is a spoken prompt confirming that an
-            # existing key combination (e.g., Ctrl+Alt+f) that was
-            # associated with a command has been deleted.
-            #
-            message = _("The keybinding has been removed.")
-
-        if modified:
-            self._presentMessage(message)
-            self.pendingKeyBindings[originalBinding] = ""
-
-        return
-
-    def presentToolTipsChecked(self, widget):
-        """Signal handler for the "toggled" signal for the
-           presentToolTipsCheckButton GtkCheckButton widget.
-           The user has [un]checked the 'Present ToolTips'
-           checkbox. Set the 'presentToolTips'
-           preference to the new value if the user can present tooltips.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        self.prefsDict["presentToolTips"] = \
-            widget.get_active() \
-            and _settingsManager.getSetting('canPresentToolTips')
-
-    def disableKeyGrabChecked(self, widget):
-        """Signal handler for the "toggled" signal for the
-           disableKeyGrabCheckButton GtkCheckButton widget.
-           The user has [un]checked the 'Disable gksu keyboard grab'
-           checkbox. Set the gconf '/apps/gksu/disable-grab' resource
-           to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        self.disableKeyGrabPref = widget.get_active()
-
-    def keyboardLayoutChanged(self, widget):
-        """Signal handler for the "toggled" signal for the generalDesktopButton,
-           or generalLaptopButton GtkRadioButton widgets. The user has
-           toggled the keyboard layout value. If this signal was
-           generated as the result of a radio button getting selected
-           (as opposed to a radio button losing the selection), set the
-           'keyboardLayout' preference to the new value. Also set the
-           matching list of Orca modifier keys
+    def keyboardLayoutChanged(self, widget):
+        """Signal handler for the "toggled" signal for the generalDesktopButton,
+           or generalLaptopButton GtkRadioButton widgets. The user has
+           toggled the keyboard layout value. If this signal was
+           generated as the result of a radio button getting selected
+           (as opposed to a radio button losing the selection), set the
+           'keyboardLayout' preference to the new value. Also set the
+           matching list of Orca modifier keys
 
         Arguments:
         - widget: the component that generated the signal.
@@ -4490,7 +3417,6 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
         """
 
         self.restoreSettings()
-        mag.finishLiveUpdating()
 
     def windowDestroyed(self, widget):
         """Signal handler for the "destroyed" signal for the orcaSetupWindow
@@ -4514,16 +3440,8 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
         self.keyBindView.hide()
         self.getTextAttributesView.hide()
         self.pronunciationView.hide()
-        mag.finishLiveUpdating()
         orca_state.orcaOS = None
 
-    def getAdvancedMagDialog(self):
-        """Return a handle to the Orca Preferences advanced magnification
-        settings dialog.
-        """
-
-        return self.orcaMagAdvancedDialog
-
     def showProfileGUI(self, widget):
         """Show profile Dialog to add a new one"""
 
@@ -4632,697 +3550,6 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
 
         self.__initProfileCombo()
 
-
-class OrcaAdvancedMagGUI(OrcaSetupGUI):
-
-    def __init__(self, fileName, windowName, prefsDict = None):
-        """Initialize the Orca configuration GUI.
-
-        Arguments:
-        - fileName: name of the GtkBuilder file.
-        - windowName: name of the component to get from the GtkBuilder file.
-        """
-
-        OrcaSetupGUI.__init__(self, fileName, windowName)
-
-        self.prefsDict = prefsDict
-        self.enableLiveUpdating = \
-            _settingsManager.getSetting('enableMagLiveUpdating')
-
-        # To make pylint happy.
-        #
-        self.savedSettings = None
-        self.sourceDisplayModel = None
-        self.targetDisplayModel = None
-
-    def init(self):
-        """Initialize the magnification Advanced Settings dialog GUI.
-        Read the users current set of preferences and set the GUI state 
-        to match. 
-        """
-
-        if not self.sourceDisplayModel:
-            self.sourceDisplayModel = \
-                self._initComboBox(self.get_widget("magSourceDisplayEntry"))
-        if not self.targetDisplayModel:
-            self.targetDisplayModel = \
-                self._initComboBox(self.get_widget("magTargetDisplayEntry"))
-        self._initGUIState()
-
-    def _initGUIState(self):
-        """Adjust the settings of the various components on the
-        configuration GUI depending upon the users preferences.
-        """
-
-        liveUpdating = self.enableLiveUpdating
-        self.enableLiveUpdating = False
-
-        prefs = self.prefsDict
-
-        # Get the smoothing preference and set the active value for the
-        # smoothing combobox accordingly.
-        #
-        self.setSmoothingMode(prefs["magSmoothingMode"])
-
-        # Get the Brightness RGB levels and set their spin button values
-        # accordingly.
-        #
-        self.setRGBBrightnessValues(prefs["magBrightnessLevelRed"],
-                                           prefs["magBrightnessLevelGreen"],
-                                           prefs["magBrightnessLevelBlue"])
-
-        # Get the Contrast RGB levels and set their spin button values
-        # accordingly.
-        #
-        self.setRGBContrastValues(prefs["magContrastLevelRed"],
-                                         prefs["magContrastLevelGreen"],
-                                         prefs["magContrastLevelBlue"])
-
-        # Get the color filtering mode preference and set the active value
-        # for the color filtering combobox accordingly.
-        #
-        self.setColorFilteringMode(prefs["magColorFilteringMode"])
-
-        # Get the magnification source and target displays.
-        #
-        display = gtk.gdk.display_get_default()
-        nScreens = display.get_n_screens()
-        sourceScreen = display.get_default_screen()
-
-        self.sourceDisplayModel.clear()
-        self.targetDisplayModel.clear()
-        for screenNo in range(0, nScreens):
-            screenName = ":0." + str(screenNo)
-            self.sourceDisplayModel.append((screenNo, screenName))
-            self.targetDisplayModel.append((screenNo, screenName))
-
-        sourceDisplay = prefs["magSourceDisplay"]
-        sourceComboBox = self.get_widget("magSourceDisplayEntry")
-        if sourceComboBox.get_text_column() == -1:
-            sourceComboBox.set_text_column(1)
-        index = self.getComboBoxIndex(sourceComboBox, sourceDisplay, 1)
-        model = sourceComboBox.get_model()
-        displayIter = model.get_iter(index)
-        if displayIter:
-            value = model.get_value(displayIter, 1)
-            sourceComboBox.get_child().set_text(value)
-
-        targetDisplay = prefs["magTargetDisplay"]
-        targetComboBox = self.get_widget("magTargetDisplayEntry")
-        if targetComboBox.get_text_column() == -1:
-            targetComboBox.set_text_column(1)
-        index = self.getComboBoxIndex(targetComboBox, targetDisplay, 1)
-        model = targetComboBox.get_model()
-        displayIter = model.get_iter(index)
-        if displayIter:
-            value = model.get_value(displayIter, 1)
-            targetComboBox.get_child().set_text(value)
-
-        self.enableLiveUpdating = liveUpdating
-        self.updateRGBBrightness()
-        self.updateRGBContrast()
-
-    def setSmoothingMode(self, smoothingMode):
-        """Get the smoothing preference and set the active value for the
-           smoothing combobox accordingly.
-
-        Arguments:
-        - smoothingMode: the smoothing mode.
-        """
-
-        if smoothingMode == settings.MAG_SMOOTHING_MODE_BILINEAR:
-            # Translators: this is an algorithm for magnifying pixels
-            # on the screen.
-            #
-            mode = _("Bilinear")
-        elif smoothingMode == settings.MAG_SMOOTHING_MODE_NONE:
-            # Translators: this is an algorithm for tracking the mouse
-            # with the magnifier.  None means that Orca does nothing to
-            # track the mouse.
-            #
-            mode = _("None")
-        else:
-            # Translators: this is an algorithm for magnifying pixels
-            # on the screen.
-            #
-            mode = _("Bilinear")
-        magSmoothingComboBox = self.get_widget("magSmoothingComboBox")
-        self.populateComboBox(magSmoothingComboBox, [_("None"), _("Bilinear")])
-        index = self.getComboBoxIndex(magSmoothingComboBox, mode)
-        magSmoothingComboBox.set_active(index)
-
-        if self.enableLiveUpdating:
-            mag.setZoomerSmoothingType(smoothingMode)
-
-    def magSmoothingChanged(self, widget):
-        """Signal handler for the "changed" signal for the
-           magSmoothingComboBox GtkComboBox widget. The user has
-           selected a different magnification smoothing style.
-           Set the 'magSmoothingMode' preference to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        smoothingMode = widget.get_active_text()
-        # Translators: this is an algorithm for magnifying pixels
-        # on the screen.
-        #
-        if smoothingMode ==  _("Bilinear"):
-            mode = settings.MAG_SMOOTHING_MODE_BILINEAR
-        elif smoothingMode == _("None"):
-            mode = settings.MAG_SMOOTHING_MODE_NONE
-        else:
-            mode = settings.MAG_SMOOTHING_MODE_BILINEAR
-
-        if self.enableLiveUpdating:
-            mag.setZoomerSmoothingType(mode)
-
-        self.prefsDict["magSmoothingMode"] = mode
-
-    def setRGBBrightnessValues(self, red, green, blue):
-        """Set the spin button values for the Brightness RGB levels.
-
-        Arguments:
-        - red:   the red brightness value.
-        - green: the green brightness value.
-        - blue:  the blue brightness value.
-        """
-        self.get_widget("magBrightnessRedSpinButton").set_value(red)
-        self.get_widget("magBrightnessGreenSpinButton").set_value(green)
-        self.get_widget("magBrightnessBlueSpinButton").set_value(blue)
-
-    def updateRGBBrightness(self):
-        """Gets the RGB brightness spin button values and live-updates
-        the brightness level in gnome-mag.
-        """
-
-        if not self.enableLiveUpdating:
-            return
-
-        r = self.get_widget("magBrightnessRedSpinButton").get_value()
-        g = self.get_widget("magBrightnessGreenSpinButton").get_value()
-        b = self.get_widget("magBrightnessBlueSpinButton").get_value()
-
-        brightness = self.prefsDict["magBrightnessLevel"]
-        r = round(r + brightness, 2)
-        g = round(g + brightness, 2)
-        b = round(b + brightness, 2)
-
-        mag.setZoomerBrightness(r, g, b)
-
-    def magBrightnessRedValueChanged(self, widget):
-        """Signal handler for the "value_changed" signal for the
-           magBrightnessRedSpinButton GtkSpinButton widget.
-           The user has changed the value of the magnification
-           brightness Red spin button. Set the 'magBrightnessLevelRed'
-           preference to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        value = round(widget.get_value(), 2)
-        self.prefsDict["magBrightnessLevelRed"] = value
-        self.updateRGBBrightness()
-
-    def magBrightnessGreenValueChanged(self, widget):
-        """Signal handler for the "value_changed" signal for the
-           magBrightnessGreenSpinButton GtkSpinButton widget.
-           The user has changed the value of the magnification
-           brightness Green spin button. Set the 'magBrightnessLevelGreen'
-           preference to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        value = round(widget.get_value(), 2)
-        self.prefsDict["magBrightnessLevelGreen"] = value
-        self.updateRGBBrightness()
-
-    def magBrightnessBlueValueChanged(self, widget):
-        """Signal handler for the "value_changed" signal for the
-           magBrightnessBlueSpinButton GtkSpinButton widget.
-           The user has changed the value of the magnification
-           brightness Blue spin button. Set the 'magBrightnessLevelBlue'
-           preference to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        value = round(widget.get_value(), 2)
-        self.prefsDict["magBrightnessLevelBlue"] = value
-        self.updateRGBBrightness()
-
-    def setRGBContrastValues(self, red, green, blue):
-        """Set the spin button values for the Contrast RGB levels.
-
-        Arguments:
-        - red:   the red contrast value.
-        - green: the green contrast value.
-        - blue:  the blue contrast value.
-        """
-
-        self.get_widget("magContrastRedSpinButton").set_value(red)
-        self.get_widget("magContrastGreenSpinButton").set_value(green)
-        self.get_widget("magContrastBlueSpinButton").set_value(blue)
-
-    def updateRGBContrast(self):
-        """Gets the RGB Contrast spin button values and live-updates
-        the contrast level in gnome-mag.
-        """
-
-        if not self.enableLiveUpdating:
-            return
-
-        r = self.get_widget("magContrastRedSpinButton").get_value()
-        g = self.get_widget("magContrastGreenSpinButton").get_value()
-        b = self.get_widget("magContrastBlueSpinButton").get_value()
-        contrast = self.prefsDict["magContrastLevel"]
-
-        r = round(r + contrast, 2)
-        g = round(g + contrast, 2)
-        b = round(b + contrast, 2)
-
-        mag.setZoomerContrast(r, g, b)
-
-    def magContrastRedValueChanged(self, widget):
-        """Signal handler for the "value_changed" signal for the
-           magContrastRedSpinButton GtkSpinButton widget.
-           The user has changed the value of the magnification
-           contrast Red spin button. Set the 'magContrastLevelRed'
-           preference to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        value = round(widget.get_value(), 2)
-        self.prefsDict["magContrastLevelRed"] = value
-        self.updateRGBContrast()
-
-    def magContrastGreenValueChanged(self, widget):
-        """Signal handler for the "value_changed" signal for the
-           magContrastGreenSpinButton GtkSpinButton widget.
-           The user has changed the value of the magnification
-           contrast Green spin button. Set the 'magContrastLevelGreen'
-           preference to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        value = round(widget.get_value(), 2)
-        self.prefsDict["magContrastLevelGreen"] = value
-        self.updateRGBContrast()
-
-    def magContrastBlueValueChanged(self, widget):
-        """Signal handler for the "value_changed" signal for the
-           magContrastBlueSpinButton GtkSpinButton widget.
-           The user has changed the value of the magnification
-           contrast Blue spin button. Set the 'magContrastLevelBlue'
-           preference to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        value = round(widget.get_value(), 2)
-        self.prefsDict["magContrastLevelBlue"] = value
-        self.updateRGBContrast()
-
-    def setColorFilteringMode(self, mode):
-        """Set the active value for the color filtering mode combobox
-           preference.
-
-        Arguments:
-        - mode: the color filtering mode.
-        """
-
-        if mode == settings.MAG_COLOR_FILTERING_MODE_NONE:
-            filteringMode = _("None")
-
-        elif mode == settings.MAG_COLOR_FILTERING_MODE_SATURATE_RED:
-            # Translators: this refers to a color filter for people with
-            # color blindness. It will maximize the red value for all
-            # pixels on the screen. For example, an RGB value of
-            # (75, 100, 125) would be become (255, 100, 125).
-            #
-            filteringMode = _("Saturate red")
-
-        elif mode == settings.MAG_COLOR_FILTERING_MODE_SATURATE_GREEN:
-            # Translators: this refers to a color filter for people with
-            # color blindness. It will maximize the green value for all
-            # pixels on the screen.  For example, an RGB value of
-            # (75, 100, 125) would become (75, 255, 125).
-            #
-            filteringMode = _("Saturate green")
-
-        elif mode == settings.MAG_COLOR_FILTERING_MODE_SATURATE_BLUE:
-            # Translators: this refers to a color filter for people with
-            # color blindness. It will maximize the blue value for all
-            # pixels on the screen. For example, an RGB value of
-            # (75, 100, 125) would become (75, 100, 255).
-            #
-            filteringMode = _("Saturate blue")
-
-        elif mode == settings.MAG_COLOR_FILTERING_MODE_DESATURATE_RED:
-            # Translators: this refers to a color filter for people with
-            # color blindness. It will eliminate the red value for all
-            # pixels on the screen. For example, an RGB value of
-            # (75, 100, 125) would be become (0, 100, 125).
-            #
-            filteringMode = _("Desaturate red")
-
-        elif mode == settings.MAG_COLOR_FILTERING_MODE_DESATURATE_GREEN:
-            # Translators: this refers to a color filter for people with
-            # color blindness. It will eliminate the green value for all
-            # pixels on the screen. For example, an RGB value of
-            # (75, 100, 125) would become (75, 0, 125).
-            #
-            filteringMode = _("Desaturate green")
-
-        elif mode == settings.MAG_COLOR_FILTERING_MODE_DESATURATE_BLUE:
-            # Translators: this refers to a color filter for people with
-            # color blindness. It will eliminate the blue value for all
-            # pixels on the screen. For example, an RGB value of
-            # (75, 100, 125) would become (75, 100, 0).
-            #
-            filteringMode = _("Desaturate blue")
-
-        elif mode == settings.MAG_COLOR_FILTERING_MODE_POSITIVE_HUE_SHIFT:
-            # Translators: this refers to a color filter for people with
-            # color blindness. It shifts RGB values to the right. For
-            # example, an RGB value of (75, 100, 125) would become
-            # (125, 75, 100).
-            #
-            filteringMode = _("Positive hue shift")
-
-        elif mode == settings.MAG_COLOR_FILTERING_MODE_NEGATIVE_HUE_SHIFT:
-            # Translators: this refers to a color filter for people with
-            # color blindness. It shifts RGB values to the left. For
-            # example, an RGB value of (75, 100, 125) would become
-            # (100, 125, 75).
-            #
-            filteringMode = _("Negative hue shift")
-
-        else:
-            filteringMode = _("None")
-
-        comboBox = self.get_widget("magColorFilteringComboBox")
-        types = [_("None"),
-                 _("Saturate red"),
-                 _("Saturate green"),
-                 _("Saturate blue"),
-                 _("Desaturate red"),
-                 _("Desaturate blue"),
-                 _("Positive hue shift"),
-                 _("Negative hue shift")]
-        self.populateComboBox(comboBox, types)
-        index = self.getComboBoxIndex(comboBox, filteringMode)
-        comboBox.set_active(index)
-        enable = mag.isFilteringCapable()
-        self.get_widget("magColorFilteringHbox").set_sensitive(enable)
-
-        if enable and self.enableLiveUpdating:
-            mag.setZoomerColorFilter(mode)
-
-    def magColorFilteringChanged(self, widget):
-        """Signal handler for the "changed" signal for the
-           magColorFilteringComboBox GtkComboBox widget. The user has
-           selected a different magnification color filtering mode.
-           Set the 'magColorFilteringMode' preference to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        filteringMode = widget.get_active_text()
-        if filteringMode ==  _("None"):
-            mode = settings.MAG_COLOR_FILTERING_MODE_NONE
-
-        # Translators: this refers to a color filter for people with
-        # color blindness. It will maximize the red value for all
-        # pixels on the screen. For example, an RGB value of
-        # (75, 100, 125) would be become (255, 100, 125).
-        #
-        elif filteringMode == _("Saturate red"):
-            mode = settings.MAG_COLOR_FILTERING_MODE_SATURATE_RED
-
-        # Translators: this refers to a color filter for people with
-        # color blindness. It will maximize the green value for all
-        # pixels on the screen.  For example, an RGB value of
-        # (75, 100, 125) would become (75, 255, 125).
-        #
-        elif filteringMode == _("Saturate green"):
-            mode = settings.MAG_COLOR_FILTERING_MODE_SATURATE_GREEN
-
-        # Translators: this refers to a color filter for people with
-        # color blindness. It will maximize the blue value for all
-        # pixels on the screen. For example, an RGB value of
-        # (75, 100, 125) would become (75, 100, 255).
-        #
-        elif filteringMode == _("Saturate blue"):
-            mode = settings.MAG_COLOR_FILTERING_MODE_SATURATE_BLUE
-
-        # Translators: this refers to a color filter for people with
-        # color blindness. It will eliminate the red value for all
-        # pixels on the screen. For example, an RGB value of
-        # (75, 100, 125) would be become (0, 100, 125).
-        #
-        elif filteringMode == _("Desaturate red"):
-            mode = settings.MAG_COLOR_FILTERING_MODE_DESATURATE_RED
-
-        # Translators: this refers to a color filter for people with
-        # color blindness. It will eliminate the green value for all
-        # pixels on the screen. For example, an RGB value of
-        # (75, 100, 125) would become (75, 0, 125).
-        #
-        elif filteringMode == _("Desaturate green"):
-            mode = settings.MAG_COLOR_FILTERING_MODE_DESATURATE_GREEN
-
-        # Translators: this refers to a color filter for people with
-        # color blindness. It will eliminate the blue value for all
-        # pixels on the screen. For example, an RGB value of
-        # (75, 100, 125) would become (75, 100, 0).
-        #
-        elif filteringMode == _("Desaturate blue"):
-            mode = settings.MAG_COLOR_FILTERING_MODE_DESATURATE_BLUE
-
-        # Translators: this refers to a color filter for people with
-        # color blindness. It shifts RGB values to the right. For
-        # example, an RGB value of (75, 100, 125) would become
-        # (125, 75, 100).
-        #
-        elif filteringMode == _("Positive hue shift"):
-            mode = settings.MAG_COLOR_FILTERING_MODE_POSITIVE_HUE_SHIFT
-
-        # Translators: this refers to a color filter for people with
-        # color blindness. It shifts RGB values to the left. For
-        # example, an RGB value of (75, 100, 125) would become
-        # (100, 125, 75).
-        #
-        elif filteringMode == _("Negative hue shift"):
-            mode = settings.MAG_COLOR_FILTERING_MODE_NEGATIVE_HUE_SHIFT
-
-        else:
-            mode = settings.MAG_COLOR_FILTERING_MODE_NONE
-
-        if self.enableLiveUpdating:
-            mag.setZoomerColorFilter(mode)
-
-        self.prefsDict["magColorFilteringMode"] = mode
-
-    def magSourceDisplayChanged(self, widget):
-        """Signal handler for the "changed" signal for the
-           magSourceDisplayDisplayEntry GtkEntry widget.
-           The user has changed the value of the magnification source
-           display. Set the 'magSourceDisplay' preference
-           to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        model = widget.get_model()
-        displayIter = widget.get_active_iter()
-        if displayIter:
-            value = model.get_value(displayIter, 1)
-            widget.get_child().set_text(value)
-        else:
-            value = widget.get_child().get_text()
-            index = self.getComboBoxIndex(widget, value, 1)
-            firstIter = model.get_iter_first()
-            if firstIter:
-                firstValue = model.get_value(firstIter, 1)
-                if index or (value == firstValue):
-                    widget.set_active(index)
-
-        self.prefsDict["magSourceDisplay"] = value
-
-    def magTargetDisplayChanged(self, widget):
-        """Signal handler for the "changed" signal for the
-           magTargetDisplayEntry GtkEntry widget.
-           The user has changed the value of the magnification target
-           display. Set the 'magTargetDisplay' preference
-           to the new value.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        model = widget.get_model()
-        displayIter = widget.get_active_iter()
-        if displayIter:
-            value = model.get_value(displayIter, 1)
-            widget.get_child().set_text(value)
-        else:
-            value = widget.get_child().get_text()
-            index = self.getComboBoxIndex(widget, value, 1)
-            firstIter = model.get_iter_first()
-            if firstIter:
-                firstValue = model.get_value(firstIter, 1)
-                if index or (value == firstValue):
-                    widget.set_active(index)
-
-        self.prefsDict["magTargetDisplay"] = value
-        if orca_state.orcaOS:
-            self._setZoomerSpinButtons()
-
-    def restoreAdvancedSettings(self):
-        """Restores the previously saved values of the settings on the 
-        magnification advanced settings dialog.
-        """
-
-        self.prefsDict["magSmoothingMode"] = \
-                             self.savedSettings["magSmoothingMode"]
-        self.prefsDict["magBrightnessLevelRed"] = \
-                             self.savedSettings["magBrightnessLevelRed"]
-        self.prefsDict["magBrightnessLevelGreen"] = \
-                             self.savedSettings["magBrightnessLevelGreen"]
-        self.prefsDict["magBrightnessLevelBlue"] = \
-                             self.savedSettings["magBrightnessLevelBlue"]
-        self.prefsDict["magContrastLevelRed"] = \
-                             self.savedSettings["magContrastLevelRed"]
-        self.prefsDict["magContrastLevelGreen"] = \
-                             self.savedSettings["magContrastLevelGreen"]
-        self.prefsDict["magContrastLevelBlue"] = \
-                             self.savedSettings["magContrastLevelBlue"]
-        self.prefsDict["magColorFilteringMode"] = \
-                             self.savedSettings["magColorFilteringMode"]
-        self.prefsDict["magSourceDisplay"] = \
-                             self.savedSettings["magSourceDisplay"]
-        self.prefsDict["magTargetDisplay"] = \
-                             self.savedSettings["magTargetDisplay"]
-
-    def saveAdvancedSettings(self, prefsDict):
-        """Save the current values of the settings on the magnification
-        advanced settings dialog.
-
-        Arguments:
-        - prefsDict: the preferences dictionary containing the current state.
-        """
-
-        self.savedSettings = {}
-        self.savedSettings["magSmoothingMode"] = \
-                                         prefsDict["magSmoothingMode"]
-        self.savedSettings["magBrightnessLevelRed"] = \
-                                         prefsDict["magBrightnessLevelRed"]
-        self.savedSettings["magBrightnessLevelGreen"] = \
-                                         prefsDict["magBrightnessLevelGreen"]
-        self.savedSettings["magBrightnessLevelBlue"] = \
-                                         prefsDict["magBrightnessLevelBlue"]
-        self.savedSettings["magContrastLevelRed"] = \
-                                         prefsDict["magContrastLevelRed"]
-        self.savedSettings["magContrastLevelGreen"] = \
-                                         prefsDict["magContrastLevelGreen"]
-        self.savedSettings["magContrastLevelBlue"] = \
-                                         prefsDict["magContrastLevelBlue"]
-        self.savedSettings["magColorFilteringMode"] = \
-                                         prefsDict["magColorFilteringMode"]
-        self.savedSettings["magSourceDisplay"] = \
-                                         prefsDict["magSourceDisplay"]
-        self.savedSettings["magTargetDisplay"] = \
-                                         prefsDict["magTargetDisplay"]
-
-    def magAdvancedCancelButtonClicked(self, widget):
-        """Signal handler for the "clicked" signal for the
-           magAdvancedCancelButton GtkButton widget. The user has clicked
-           the Cancel button. We restore the preferences for the settings
-           on the Advanced Settings dialog, back to what they we when it
-           was initially displayed and hide it.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        self.restoreAdvancedSettings()
-        self.init()
-        self.setSmoothingMode(self.prefsDict["magSmoothingMode"])
-        self.setColorFilteringMode(self.prefsDict["magColorFilteringMode"])
-        liveUpdating = self.enableLiveUpdating
-        self.enableLiveUpdating = False
-        self.updateRGBBrightness()
-        self.updateRGBContrast()
-        self.enableLiveUpdating = liveUpdating
-        orca_state.advancedMagDialog.hide()
-
-    def magAdvancedOkButtonClicked(self, widget):
-        """Signal handler for the "clicked" signal for the magAdvancedOKButton
-           GtkButton widget. The user has clicked the OK button.  We don't
-           want to write out any preferences until the main window's apply
-           or OK button has been clicked. Just hide the advanced window.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        orca_state.advancedMagDialog.hide()
-
-    def magAdvancedDialogDestroyed(self, widget):
-        """Signal handler for the "destroyed" signal for the
-        orcaMagAdvancedDialog GtkWindow widget. Instead of destroying
-        the dialog, rebuild it, reinitialize it and hide it.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        """
-
-        self.restoreAdvancedSettings()
-        orca_state.advancedMag = OrcaAdvancedMagGUI(orca_state.prefsUIFile,
-                                   "orcaMagAdvancedDialog", self.prefsDict)
-        orca_state.advancedMag.init()
-        orca_state.advancedMagDialog = \
-                                orca_state.advancedMag.getAdvancedMagDialog()
-
-    def magAdvancedDialogKeyPressed(self, widget, event):
-        """Signal handler for the "key_press" signal for the
-        orcaMagAdvancedDialog GtkWindow widget. If the user has pressed the
-        Escape key, then just hide the window.
-
-        Arguments:
-        - widget: the component that generated the signal.
-        - event: the event for the key that the user pressed.
-        """
-
-        if isinstance(orca_state.lastInputEvent, input_event.KeyboardEvent):
-            if orca_state.lastInputEvent.event_string == "Escape":
-                self.restoreAdvancedSettings()
-                self.init()
-                self.setSmoothingMode(self.prefsDict["magSmoothingMode"])
-                self.setColorFilteringMode(\
-                    self.prefsDict["magColorFilteringMode"])
-                liveUpdating = self.enableLiveUpdating
-                self.enableLiveUpdating = False
-                self.updateRGBBrightness()
-                self.updateRGBContrast()
-                self.enableLiveUpdating = liveUpdating
-                orca_state.advancedMagDialog.hide()
-
-        return False
-
 class WarningDialogGUI(orca_gtkbuilder.GtkBuilderWrapper):
 
     def getPrefsWarningDialog(self):
@@ -5378,18 +3605,6 @@ def showPreferencesUI():
                          orca_platform.package,
                          "ui",
                          "orca-setup.ui")
-        orca_state.advancedMagUIFile = \
-            os.path.join(orca_platform.prefix,
-                         orca_platform.datadirname,
-                         orca_platform.package,
-                         "ui",
-                         "orca-advanced-magnification.ui")
-        orca_state.advancedMag = \
-            OrcaAdvancedMagGUI(orca_state.advancedMagUIFile,
-                               "orcaMagAdvancedDialog", prefsDict)
-        orca_state.advancedMag.init()
-        orca_state.advancedMagDialog = \
-                              orca_state.advancedMag.getAdvancedMagDialog()
 
         orca_state.orcaOS = OrcaSetupGUI(orca_state.prefsUIFile,
                                          "orcaSetupWindow", prefsDict)
diff --git a/src/orca/orca_prefs.py b/src/orca/orca_prefs.py
index a259bf6..f4d58e0 100644
--- a/src/orca/orca_prefs.py
+++ b/src/orca/orca_prefs.py
@@ -28,8 +28,11 @@ __license__   = "LGPL"
 import os
 import pprint
 
+import orca
 import settings
 
+_settingsManager = getattr(orca, '_settingsManager')
+
 # The same fields than in orca_gui_prefs.py:
 #
 (HANDLER, DESCRIP, MOD_MASK1, MOD_USED1, KEY1, CLICK_COUNT1, OLDTEXT1, \
@@ -155,21 +158,6 @@ class OrcaPrefs:
 
         return not alreadyEnabled
 
-    def _getDisplayString(self, display):
-        """Returns a string that represents the source or target 
-        magnifier display.
-
-        Arguments:
-        - display: the magnifier source or taget display string.
-
-        Returns a string suitable for the preferences file.
-        """
-
-        if not display:
-            return "':0.0'"
-        else:
-            return "'%s'" % display
-
     def _getSpeechServerFactoryString(self, factory):
         """Returns a string that represents the speech server factory passed in.
 
@@ -398,153 +386,6 @@ class OrcaPrefs:
         elif sayAllStyle == settings.SAYALL_STYLE_SENTENCE:
             return "orca.settings.SAYALL_STYLE_SENTENCE"
 
-    def _getMagColorString(self, cursorColor):
-        """Returns a string that represents the magnification object's color
-        passed in.
-
-        Arguments:
-        - cursorColor: magnification object's color
-
-        Returns a string suitable for the preferences file.
-        """
-
-        cursorColorStr = "'%s'" % cursorColor
-
-        return cursorColorStr
-
-    def _getMagSmoothingModeString(self, smoothingMode):
-        """Returns a string that represents the magnification smoothing mode
-        passed in.
-
-        Arguments:
-        - smoothingMode: magnification smoothing mode.
-
-        Returns a string suitable for the preferences file.
-        """
-
-        if smoothingMode == settings.MAG_SMOOTHING_MODE_BILINEAR:
-            return "orca.settings.MAG_SMOOTHING_MODE_BILINEAR"
-        elif smoothingMode == settings.MAG_SMOOTHING_MODE_NONE:
-            return "orca.settings.MAG_SMOOTHING_MODE_NONE"
-        else:
-            return "orca.settings.MAG_SMOOTHING_MODE_BILINEAR"
-
-    def _getMagMouseTrackingModeString(self, mouseTrackingMode):
-        """Returns a string that represents the magnification mouse tracking
-        mode passed in.
-
-        Arguments:
-        - mouseTrackingMode: magnification mouse tracking mode.
-
-        Returns a string suitable for the preferences file.
-        """
-
-        if mouseTrackingMode == settings.MAG_TRACKING_MODE_CENTERED:
-            return "orca.settings.MAG_TRACKING_MODE_CENTERED"
-        elif mouseTrackingMode == settings.MAG_TRACKING_MODE_NONE:
-            return "orca.settings.MAG_TRACKING_MODE_NONE"
-        elif mouseTrackingMode == settings.MAG_TRACKING_MODE_PROPORTIONAL:
-            return "orca.settings.MAG_TRACKING_MODE_PROPORTIONAL"
-        elif mouseTrackingMode == settings.MAG_TRACKING_MODE_PUSH:
-            return "orca.settings.MAG_TRACKING_MODE_PUSH"
-        else:
-            return "orca.settings.MAG_TRACKING_MODE_CENTERED"
-
-    def _getMagControlTrackingModeString(self, controlTrackingMode):
-        """Returns a string that represents the magnification control
-        and menu item tracking mode passed in.
-
-        Arguments:
-        - controlTrackingMode: magnification control and menu item tracking 
-                               mode.
-
-        Returns a string suitable for the preferences file.
-        """
-
-        if controlTrackingMode == settings.MAG_TRACKING_MODE_CENTERED:
-            return "orca.settings.MAG_TRACKING_MODE_CENTERED"
-        elif controlTrackingMode == settings.MAG_TRACKING_MODE_NONE:
-            return "orca.settings.MAG_TRACKING_MODE_NONE"
-        elif controlTrackingMode == settings.MAG_TRACKING_MODE_PUSH:
-            return "orca.settings.MAG_TRACKING_MODE_PUSH"
-        else:
-            return "orca.settings.MAG_TRACKING_MODE_PUSH"
-
-    def _getMagTextTrackingModeString(self, textTrackingMode):
-        """Returns a string that represents the magnification text cursor
-        tracking mode passed in.
-
-        Arguments:
-        - textTrackingMode: magnification text cursor tracking mode.
-
-        Returns a string suitable for the preferences file.
-        """
-
-        if textTrackingMode == settings.MAG_TRACKING_MODE_CENTERED:
-            return "orca.settings.MAG_TRACKING_MODE_CENTERED"
-        elif textTrackingMode == settings.MAG_TRACKING_MODE_NONE:
-            return "orca.settings.MAG_TRACKING_MODE_NONE"
-        elif textTrackingMode == settings.MAG_TRACKING_MODE_PUSH:
-            return "orca.settings.MAG_TRACKING_MODE_PUSH"
-        else:
-            return "orca.settings.MAG_TRACKING_MODE_PUSH"
-
-    def _getMagColorFilteringModeString(self, mode):
-        """Returns a string that represents the magnification color filtering
-        mode passed in.
-
-        Arguments:
-        - mode: magnification color filtering mode.
-
-        Returns a string suitable for the preferences file.
-        """
-
-        if mode == settings.MAG_COLOR_FILTERING_MODE_NONE:
-            return "orca.settings.MAG_COLOR_FILTERING_MODE_NONE"
-        elif mode == settings.MAG_COLOR_FILTERING_MODE_SATURATE_RED:
-            return "orca.settings.MAG_COLOR_FILTERING_MODE_SATURATE_RED"
-        elif mode == settings.MAG_COLOR_FILTERING_MODE_SATURATE_GREEN:
-            return "orca.settings.MAG_COLOR_FILTERING_MODE_SATURATE_GREEN"
-        elif mode == settings.MAG_COLOR_FILTERING_MODE_SATURATE_BLUE:
-            return "orca.settings.MAG_COLOR_FILTERING_MODE_SATURATE_BLUE"
-        elif mode == settings.MAG_COLOR_FILTERING_MODE_DESATURATE_RED:
-            return "orca.settings.MAG_COLOR_FILTERING_MODE_DESATURATE_RED"
-        elif mode == settings.MAG_COLOR_FILTERING_MODE_DESATURATE_GREEN:
-            return "orca.settings.MAG_COLOR_FILTERING_MODE_DESATURATE_GREEN"
-        elif mode == settings.MAG_COLOR_FILTERING_MODE_DESATURATE_BLUE:
-            return "orca.settings.MAG_COLOR_FILTERING_MODE_DESATURATE_BLUE"
-        elif mode == settings.MAG_COLOR_FILTERING_MODE_POSITIVE_HUE_SHIFT:
-            return "orca.settings.MAG_COLOR_FILTERING_MODE_POSITIVE_HUE_SHIFT"
-        elif mode == settings.MAG_COLOR_FILTERING_MODE_NEGATIVE_HUE_SHIFT:
-            return "orca.settings.MAG_COLOR_FILTERING_MODE_NEGATIVE_HUE_SHIFT"
-        else:
-            return "orca.settings.MAG_COLOR_FILTERING_MODE_NONE"
-
-    def _getMagZoomerTypeString(self, magZoomerType):
-        """Returns a string that represents the magnification zoomer position
-        type passed in.
-
-        Arguments:
-        - magZoomerType: magnification zoomer position type.
-
-        Returns a string suitable for the preferences file.
-        """
-
-        if magZoomerType == settings.MAG_ZOOMER_TYPE_FULL_SCREEN:
-            return "orca.settings.MAG_ZOOMER_TYPE_FULL_SCREEN"
-        elif magZoomerType == settings.MAG_ZOOMER_TYPE_TOP_HALF:
-            return "orca.settings.MAG_ZOOMER_TYPE_TOP_HALF"
-        elif magZoomerType == settings.MAG_ZOOMER_TYPE_BOTTOM_HALF:
-            return "orca.settings.MAG_ZOOMER_TYPE_BOTTOM_HALF"
-        elif magZoomerType == settings.MAG_ZOOMER_TYPE_LEFT_HALF:
-            return "orca.settings.MAG_ZOOMER_TYPE_LEFT_HALF"
-        elif magZoomerType == settings.MAG_ZOOMER_TYPE_RIGHT_HALF:
-            return "orca.settings.MAG_ZOOMER_TYPE_RIGHT_HALF"
-        elif magZoomerType == settings.MAG_ZOOMER_TYPE_CUSTOM:
-            return "orca.settings.MAG_ZOOMER_TYPE_CUSTOM"
-        else:
-            return "orca.settings.MAG_ZOOMER_TYPE_FULL_SCREEN"
-
     def _getProgressBarVerbosityString(self, verbosityLevel):
         """Returns a string that represents the progress bar verbosity level
         passed in.
@@ -776,24 +617,6 @@ class OrcaPrefs:
                 value = self._getPresentTimeString(prefsDict[key])
             elif key == "sayAllStyle":
                 value = self._getSayAllStyleString(prefsDict[key])
-            elif key in ["magCursorColor",
-                         "magCrossHairColor",
-                         "magZoomerBorderColor"]:
-                value = self._getMagColorString(prefsDict[key])
-            elif key == "magSmoothingMode":
-                value = self._getMagSmoothingModeString(prefsDict[key])
-            elif key == "magMouseTrackingMode":
-                value = self._getMagMouseTrackingModeString(prefsDict[key])
-            elif key == "magControlTrackingMode":
-                value = self._getMagControlTrackingModeString(prefsDict[key])
-            elif key == "magTextTrackingMode":
-                value = self._getMagTextTrackingModeString(prefsDict[key])
-            elif key == "magZoomerType":
-                value = self._getMagZoomerTypeString(prefsDict[key])
-            elif key == "magColorFilteringMode":
-                value = self._getMagColorFilteringModeString(prefsDict[key])
-            elif key == "magSourceDisplay" or key == "magTargetDisplay":
-                value = self._getDisplayString(prefsDict[key])
             elif key == "keyboardLayout":
                 value = self._getKeyboardLayoutString(prefsDict[key])
             elif key == "orcaModifierKeys":
diff --git a/src/orca/settings.py b/src/orca/settings.py
index a8ce7a0..540605c 100644
--- a/src/orca/settings.py
+++ b/src/orca/settings.py
@@ -48,11 +48,6 @@ try:
     _screen = _display.get_default_screen()
     _root_window = _screen.get_root_window()
 
-    # These are used for placing the magnifier zoomer.
-    #
-    screenWidth = _screen.get_width()
-    screenHeight = _screen.get_height()
-
     # The bug that caused gnome-panel to crash is fixed in GTK 2.10.11.
     minimum_gtk_version = (100000 * 2) + \
                           (1000 * 10) + \
@@ -120,45 +115,6 @@ userCustomizableSettings = [
     "brailleLinkIndicator",
     "brailleAlignmentStyle",
     "enableBrailleMonitor",
-    "enableMagnifier",
-    "enableMagLiveUpdating",
-    "enableMagCursor",
-    "enableMagCursorExplicitSize",
-    "magHideCursor",
-    "magCursorSize",
-    "magCursorColor",
-    "enableMagCrossHair",
-    "enableMagCrossHairClip",
-    "magCrossHairSize",
-    "magCrossHairColor",
-    "magZoomerType",
-    "magZoomerLeft",
-    "magZoomerRight",
-    "magZoomerTop",
-    "magZoomerBottom",
-    "magZoomFactor",
-    "enableMagZoomerBorder",
-    "magZoomerBorderSize",
-    "magZoomerBorderColor",
-    "enableMagZoomerColorInversion",
-    "magBrightnessLevel",
-    "magBrightnessLevelRed",
-    "magBrightnessLevelBlue",
-    "magBrightnessLevelGreen",
-    "magContrastLevel",
-    "magContrastLevelRed",
-    "magContrastLevelGreen",
-    "magContrastLevelBlue",
-    "magSmoothingMode",
-    "magMouseTrackingMode",
-    "magControlTrackingMode",
-    "magTextTrackingMode",
-    "magEdgeMargin",
-    "magPointerFollowsFocus",
-    "magPointerFollowsZoomer",
-    "magColorFilteringMode",
-    "magSourceDisplay",
-    "magTargetDisplay",
     "verbalizePunctuationStyle",
     "showMainWindow",
     "quitOrcaNoConfirmation",
@@ -458,12 +414,6 @@ enableBrailleMonitor    = False
 #
 enableMagnifier                  = False
 
-# If True, changes made in the Magnifier pane will take place
-# immediately (i.e. without pressing the apply button).  Making
-# them permanent still requires pressing Apply or OK.
-#
-enableMagLiveUpdating            = True
-
 # If True, show the magnification cursor.
 #
 enableMagCursor                  = True
diff --git a/src/orca/settings_manager.py b/src/orca/settings_manager.py
index 6760b16..cab0307 100644
--- a/src/orca/settings_manager.py
+++ b/src/orca/settings_manager.py
@@ -372,7 +372,7 @@ class SettingsManager(object):
                 continue
             elif key == 'profile':
                 self.profileGeneral[key] = value
-            elif value != self.defaultGeneralValues[key]:
+            elif value != self.defaultGeneralValues.get(key):
                 self.profileGeneral[key] = value
             elif self.general.get(key) != value:
                 self.profileGeneral[key] = value



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]