Changeset 111

Show
Ignore:
Timestamp:
01/05/08 16:11:39
Author:
slee
Message:

minimize rather than hide and FF fix

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • inapp/trunk/src/jambu/ActionBrowser.py

    r110 r111  
    6565    self._buildUI() 
    6666    self.bl = None 
    67     if getattr(self, '_show_tree_view', True): 
    68       self.show_all() 
     67    self.show_all() 
     68    if not getattr(self, '_show_tree_view', True): 
     69      self.iconify() 
    6970    self.is_scanning = False 
    7071    if getattr(self, '_scan', True): 
  • inapp/trunk/src/jambu/ActionModel.py

    r109 r111  
    3737      if child.is_interactive or child.is_group: 
    3838        items.append(AccFactory(child)) 
    39         print '%s %s%s ' % (child._acc, ('i' if child.is_interactive else ''), 
    40                                          ('g' if child.is_group else '')) 
     39#        print '%s %s%s ' % (child._acc, ('i' if child.is_interactive else ''), 
     40#                                         ('g' if child.is_group else '')) 
    4141      elif child.hasStates(pyatspi.STATE_SHOWING): 
    4242        self._findInterestingChildren(child, items) 
     
    146146  def popToPath(self, path): 
    147147    for i in xrange(1, len(path)): 
    148       if not self[path[:i]][self.COL_FILLED]: 
    149         self.popLevel(self.get_iter(path[:i])) 
    150  
     148      try: 
     149        if not self[path[:i]][self.COL_FILLED]: 
     150          self.popLevel(self.get_iter(path[:i])) 
     151      except IndexError: 
     152        return 
     153       
    151154  def makeExpandable(self, iter): 
    152155    # add dummy child is expandable 
  • inapp/trunk/src/jambu/ActionTree.py

    r109 r111  
    142142  def _onChildAddTimeout(self): 
    143143    self.adding_children = False 
     144    self._onChildChanged() 
    144145    return False 
    145146     
     
    160161    class WindowActivateMessage(MyMessage): 
    161162      handler = self._onWindowActivate 
    162     class ChildChangedMessage(MyMessage): 
    163       handler = self._onChildChanged 
    164163     
    165164    s = formatEvent(event) 
     
    167166 
    168167    if event.type == 'focus:' and \ 
    169         not (source_acc.hasRoleIn(pyatspi.ROLE_MENU, pyatspi.ROLE_MENU_ITEM, 
    170                                     pyatspi.ROLE_RADIO_MENU_ITEM, pyatspi.ROLE_CHECK_MENU_ITEM)): 
     168        not (AccDecorator(source_acc.parent).hasRoleIn(pyatspi.ROLE_MENU, pyatspi.ROLE_MENU_ITEM)): 
     169#        not (source_acc.hasRoleIn(pyatspi.ROLE_MENU, pyatspi.ROLE_MENU_ITEM, 
     170#                                    pyatspi.ROLE_RADIO_MENU_ITEM, pyatspi.ROLE_CHECK_MENU_ITEM)): 
    171171      PrintMessage(s).send() 
    172172      HideMenuMessage(True).send() 
     
    200200#      ShowMenuMessage(event).send() 
    201201 
    202     elif event.type == 'object:children-changed:remove': 
    203       PrintMessage(s).send() 
    204       model = self.get_model() 
    205       path = model.getAccPath(source_acc)  
    206       if path is not None: 
    207         ChildChangedMessage(path).send() 
    208     elif event.type == 'object:children-changed:add': 
     202    elif event.type in ('object:children-changed:remove',  
     203                        'object:children-changed:add', 
     204                        'object:children-changed:remove:system', 
     205                        'object:children-changed:add:system', 
     206                        ): 
    209207      if not self.adding_children: 
    210         # hack to ignore bunch of adds 
    211208        self.adding_children = True 
    212209        PrintMessage(s).send() 
    213         ChildChangedMessage(None).send() 
    214210        self.id = gobject.timeout_add(500, self._onChildAddTimeout) 
     211      return  
    215212 
    216213    elif event.type in ('object:visible-data-changed'): 
     
    222219         
    223220    elif event.source.getRole() == pyatspi.ROLE_MENU: 
    224       if event.type in ('object:state-changed:selected', 'object:state-changed:focused'): 
     221      if event.type in ('object:state-changed:selected', 
     222                        'object:state-changed:focused', 
     223                        'object:state-changed:visible'): 
    225224        PrintMessage(s).send() 
    226225        selected = bool(event.detail1) 
    227         if selected: 
     226        if selected \ 
     227           and (event.type <> 'object:state-changed:visible' \ 
     228               or (event.detail1 == 1 \ 
     229                  and (event.source.parent.getRole() == pyatspi.ROLE_COMBO_BOX or \ 
     230                       event.source.parent.getRole() == pyatspi.ROLE_PUSH_BUTTON or \ 
     231                       event.source.parent.getRole() == pyatspi.ROLE_FRAME))): 
    228232          ShowMenuMessage(event).send() 
    229233        else: 
    230234          HideMenuMessage().send() 
    231       elif event.type == 'object:state-changed:visible' \ 
    232           and event.detail1 == 1 \ 
    233           and (event.source.parent.getRole() == pyatspi.ROLE_COMBO_BOX or \ 
    234                event.source.parent.getRole() == pyatspi.ROLE_PUSH_BUTTON): 
    235         PrintMessage(s).send() 
    236         ShowMenuMessage(event).send() 
    237       elif event.type == 'object:state-changed:visible' \ 
    238           and event.detail1 == 0: 
    239         PrintMessage(s).send() 
    240         HideMenuMessage().send() 
    241235 
    242236    elif event.source.getRole() == pyatspi.ROLE_WINDOW: 
     
    255249    self.next() 
    256250 
    257   def _onChildChanged(self, path): 
     251  def _onChildChanged(self): 
    258252    #a child of a acc in the model has changed 
    259253    print 'ChildChange' 
     
    271265    if acc.hasRoleIn(pyatspi.ROLE_PUSH_BUTTON, pyatspi.ROLE_MENU, pyatspi.ROLE_COMBO_BOX): 
    272266      model.makeExpandable(iter) 
    273     if acc.hasRoleIn(pyatspi.ROLE_PUSH_BUTTON): 
    274         #and acc.hasAttribute('haspopup', 'true'): 
     267    if acc.hasRoleIn(pyatspi.ROLE_PUSH_BUTTON, pyatspi.ROLE_IMAGE): 
     268        #and acc.hasAttribute('haspopup', 'true'): parent == AUTCOMPLETE? 
    275269      model.popLevel(iter, event.source) 
    276270    else: 
     
    292286                                                   pyatspi.ROLE_MENU,  
    293287                                                   pyatspi.ROLE_COMBO_BOX,  
    294                                                    pyatspi.ROLE_PUSH_BUTTON) 
     288                                                   pyatspi.ROLE_PUSH_BUTTON,  
     289                                                   pyatspi.ROLE_IMAGE) 
    295290      if next_menu_iter is None: 
    296291        break