Changeset 91

Show
Ignore:
Timestamp:
12/14/07 12:10:38
Author:
slee
Message:

attmept to improve blinker artifacts

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • action_groups/trunk/ActionModel.py

    r86 r91  
    9292    gtk.TreeStore.__init__(self, str, str, object, bool, bool) 
    9393    self.root_acc = root_acc 
     94    self.acc_cache = {} 
    9495 
    9596  def getRootAcc(self): 
     
    113114    for child in ag: 
    114115      self._appendChild(iter, child) 
     116      print child 
     117      sel.acc.cache[id(child)] = child 
    115118         
    116119    if iter: 
     
    147150    while iter_valid and (all or not self[child_iter][self.COL_DUMMY]): 
    148151      iter_valid = self.remove(child_iter) 
     152      child = self[child_iter][ActionModel.COL_ACC] 
     153      print child 
     154      del self.acc_cache[id(child)] 
    149155    self[iter][self.COL_FILLED] = False 
    150156 
     
    165171    return None 
    166172 
    167   def getAccPath(self, acc): 
     173  def zgetAccPath(self, acc): 
    168174    row = self.search(self, lambda row, acc: row[ActionModel.COL_ACC] == acc) 
    169175    if row is not None: 
    170176      return row.path 
    171177    return None 
     178 
     179  def getAccPath(self, acc): 
     180    try: 
     181      print acc 
     182      return self.acc_cache(id(acc)) 
     183    except LookupError: 
     184      return None 
  • action_groups/trunk/ActionTree.py

    r87 r91  
    138138          acc = acc.parent 
    139139        return None 
    140       model = self.get_model() 
    141140      top = parent_acc_with_role(event.source, pyatspi.ROLE_DIALOG,  
    142141                                        pyatspi.ROLE_ALERT,  
    143142                                        pyatspi.ROLE_FRAME) 
    144       #print '%s %s' % (model.getRootAcc(), top) 
    145143      try: 
    146144        root = model.getRootAcc() 
     
    153151        WindowActivateMessage(top).send() 
    154152 
    155 #    elif event.type in ('object:children-changed:add', 'object:children-changed:remove'): 
    156 #      PrintMessage(s).send() 
    157 #      ChildChangedMessage(source_acc).send() 
     153    elif event.type in ('object:children-changed:add', 'object:children-changed:remove'): 
     154      PrintMessage(s).send() 
     155      model = self.get_model() 
     156      if model.getAccPath(source_acc) is not None: 
     157        ChildChangedMessage(source_acc).send() 
    158158       
    159159    elif event.source.getRole() == pyatspi.ROLE_MENU: