- if tree.needUpdate:
- if conf.autoRefresh:
- if g.testWin:
- self.SetStatusText('Refreshing test window...')
- # (re)create
- tree.CreateTestWin(g.testWin.item)
- self.SetStatusText('')
- tree.needUpdate = False
- elif tree.pendingHighLight:
- tree.HighLight(tree.pendingHighLight)
- else:
- evt.Skip()
- self.inIdle = False
+ try:
+ if tree.needUpdate:
+ if conf.autoRefresh:
+ if g.testWin:
+ self.SetStatusText('Refreshing test window...')
+ # (re)create
+ tree.CreateTestWin(g.testWin.item)
+ self.SetStatusText('')
+ tree.needUpdate = False
+ elif tree.pendingHighLight:
+ try:
+ tree.HighLight(tree.pendingHighLight)
+ except:
+ # Remove highlight if any problem
+ if g.testWin.highLight:
+ g.testWin.highLight.Remove()
+ tree.pendingHighLight = None
+ raise
+ else:
+ evt.Skip()
+ finally:
+ self.inIdle = False