? .cvsignore
? AEChooser/.cvsignore
? AEEvent/.cvsignore
? AEInput/.cvsignore
? AEMonitor/.cvsignore
? AEOutput/.cvsignore
? AEState/.cvsignore
? Adapters/.cvsignore
? Adapters/ATSPI/.cvsignore
? Choosers/.cvsignore
? Devices/.cvsignore
? Monitors/.cvsignore
? Perks/.cvsignore
? Task/.cvsignore
? Task/Tools/.cvsignore
? Templates/.cvsignore
? Walker/.cvsignore
? pyLinAcc/.cvsignore
Index: TierManager.py
===================================================================
RCS file: /cvs/gnome/lsr/src/TierManager.py,v
retrieving revision 1.40
diff -u -r1.40 TierManager.py
--- TierManager.py	16 Nov 2006 16:13:29 -0000	1.40
+++ TierManager.py	23 Nov 2006 03:02:35 -0000
@@ -377,13 +377,18 @@
     @type event: L{AEEvent.Base.AccessEngineEvent}
     '''
     aid = event.getAppID()
-    try:
-      # choose the Tier given its application ID
-      tier = self.tiers[aid]
-    except KeyError:
-      return
-    # let that Tier manage the event
-    tier.manageEvent(event)
+    if aid:
+      aids = [aid]
+    else:
+      aids = self.tiers.keys()
+    for aid in aids:
+      try:
+        # choose the Tier given its application ID
+        tier = self.tiers[aid]
+      except KeyError:
+        continue
+      # let that Tier manage the event
+      tier.manageEvent(event)
     
   def manageTimer(self, event):
     '''
Index: Choosers/SettingsChooser.py
===================================================================
RCS file: /cvs/gnome/lsr/src/Choosers/SettingsChooser.py,v
retrieving revision 1.27
diff -u -r1.27 SettingsChooser.py
--- Choosers/SettingsChooser.py	16 Nov 2006 18:01:08 -0000	1.27
+++ Choosers/SettingsChooser.py	23 Nov 2006 03:02:35 -0000
@@ -231,6 +231,9 @@
     self.system = system
     self.perks = perks
     self.devices = devices
+
+    # Map each widget and setting to a state and name
+    self.setting_contexts = {}
     
     # load the glade file
     gtk.glade.set_custom_handler(self._createCustomWidget)
@@ -474,6 +477,7 @@
     @type group: L{AEState.Setting.Group}
     '''
     n = len(group)
+    state = group.context
     # use a n by 2 table to order widgets nicely
     table = gtk.Table(n, 2)
     table.set_row_spacings(5)
@@ -495,6 +499,7 @@
         table.attach(widget, 0, 2, n-row-1, n-row, yoptions=gtk.FILL, 
                      xpadding=5)
       else:
+        self.setting_contexts[(state,setting.variable)] = (widget, setting)
         if setting.description:
           # set description as tooltip and accessible description
           self.tips.set_tip(widget, setting.description)
@@ -593,4 +598,21 @@
     @todo: PP: need to get a reference to the panel showing the given state,
       and the widget representing the named setting
     '''
-    print 'chooser updating', state, name, value
+    try:
+      widget, setting = self.setting_contexts[(state, name)]
+    except KeyError:
+      return
+      
+    if isinstance(widget, gtk.CheckButton):
+      widget.set_active(value)
+    elif isinstance(widget, gtk.FileChooserButton):
+      widget.set_filename(value)
+    elif isinstance(widget, gtk.Entry):
+      widget.set_text(value)
+    elif isinstance(widget, gtk.HScale):
+      widget.set_value(value)
+    elif isinstance(widget, gtk.SpinButton):
+      widget.set_value(value)
+    elif isinstance(widget, gtk.ComboBox):
+      widget.set_active(setting.values.index(value))
+    
Index: Perks/DefaultDialogPerk.py
===================================================================
RCS file: /cvs/gnome/lsr/src/Perks/DefaultDialogPerk.py,v
retrieving revision 1.35
diff -u -r1.35 DefaultDialogPerk.py
--- Perks/DefaultDialogPerk.py	16 Nov 2006 16:13:34 -0000	1.35
+++ Perks/DefaultDialogPerk.py	23 Nov 2006 03:02:35 -0000
@@ -432,3 +432,4 @@
     # if the setting change originated elsewhere, inform the chooser
     if self.chooser is not source:
       self.chooser.updateSetting(state, name, value)
+    return True
Index: Task/Tools/System.py
===================================================================
RCS file: /cvs/gnome/lsr/src/Task/Tools/System.py,v
retrieving revision 1.45
diff -u -r1.45 System.py
--- Task/Tools/System.py	16 Nov 2006 16:13:35 -0000	1.45
+++ Task/Tools/System.py	23 Nov 2006 03:02:35 -0000
@@ -949,7 +949,7 @@
     self.device_man.unloadDevices()
     self.device_man.loadDevices()
     
-  def signalSetting(self, state, name, value, **kwargs):
+  def signalSetting(self, state, name, value, all_tiers=False, **kwargs):
     '''
     Sends an L{AEEvent.SettinChange} indicating the setting with the given name
     in the given L{AEState} object changed its value. Any keyword arguments
@@ -962,9 +962,15 @@
     @type name: string
     @param value: New value of the setting
     @type value: object
+    @param all_tiers: Send signal to all LSR tiers
+    @type all_tiers: boolean
     @param kwargs: Arbitrary data to be delivered with the event
     @type kwargs: dictionary
     '''
-    event = AEEvent.SettingChange(self.tier.getIdentity(), self.perk, state, 
-                                  name, value, **kwargs)
-    self.event_man.postEvents(event)
\ No newline at end of file
+    if all_tiers:
+      event = AEEvent.SettingChange(None, self.perk, state, 
+                                    name, value, **kwargs)
+    else:
+      event = AEEvent.SettingChange(self.tier.getIdentity(), self.perk, state, 
+                                    name, value, **kwargs)
+    self.event_man.postEvents(event)
