Changeset 1489
- Timestamp:
- 07/11/08 19:36:22 (8 weeks ago)
- Location:
- trunk/peppy
- Files:
-
- 2 modified
-
actions/minibuffer.py (modified) (3 diffs)
-
lib/textctrl_autocomplete.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/peppy/actions/minibuffer.py
r1488 r1489 174 174 self.panel = None 175 175 176 def removeFromParent(self ):176 def removeFromParent(self, call_after=False): 177 177 """ 178 178 Convenience routine to destroy minibuffer after the event loop … … 184 184 # remove the minibuffer if the mode is still valid. 185 185 if self.mode: 186 wx.CallAfter(self.mode.removeMinibuffer, self) 186 if call_after: 187 wx.CallAfter(self.mode.removeMinibuffer, self) 188 else: 189 self.mode.removeMinibuffer(self) 187 190 188 191 def performAction(self, value): … … 243 246 # the tab focus doesn't get confused. If you try to perform these 244 247 # actions directly, the focus will return to the original tab if 245 # the action causes a new tab to be created. Moving everything to 246 # CallAfters prevents this. 248 # the action causes a new tab to be created. Moving everything 249 # to CallAfters prevents this. Also, MSW can crash if performing 250 # these directly, so it's worth the extra milliseconds to use 251 # CallAfter 247 252 wx.CallAfter(self.removeFromParent) 248 253 if text is not None: 249 254 wx.CallAfter(self.performAction, text) 250 255 251 256 252 257 class IntMinibuffer(TextMinibuffer): -
trunk/peppy/lib/textctrl_autocomplete.py
r1474 r1489 380 380 if ( self.GetInsertionPoint() == self._lastinsertionpoint ) : 381 381 self._showDropDown ( not self.dropdown.IsShown() ) 382 wx.CallAfter(self. SetFocus)382 wx.CallAfter(self.setFocusCallback) 383 383 event.Skip () 384 385 def setFocusCallback(self, end=False): 386 """Callback for use within wx.CallAfter to prevent focus being set 387 after the control has been removed. 388 """ 389 #print("Here in setFocusCallback") 390 if self: 391 #print("setting focus") 392 self.SetFocus() 393 if end: 394 self.SetInsertionPointEnd() 384 395 385 396 def OnSetFocus(self, evt): … … 392 403 #print("changed=%s other=%s" % (changed, other)) 393 404 if self._mac: 394 wx.CallAfter(self.SetFocus) 395 wx.CallAfter(self.SetInsertionPointEnd) 405 wx.CallAfter(self.setFocusCallback, True) 396 406 event.Skip() 397 407 return … … 470 480 self.dropdown . SetPosition ( wx.Point(x, y - height - size.GetHeight()) ) 471 481 self.dropdown.Show ( show ) 472 wx.CallAfter(self. SetFocus)482 wx.CallAfter(self.setFocusCallback) 473 483 474 484 def _listItemVisible( self ) :
