Changeset 1487

Show
Ignore:
Timestamp:
07/10/08 22:43:13 (2 months ago)
Author:
rob
Message:

Removed the CallAfter? in OnTabChanged? to prevent an extra tab change back to the original tab after a minibuffer
* changed the descruction order of minibuffer
* FIXME: somewhere there's a bad SetFocus? call in a CallAfter?:

Traceback (most recent call last):

File "/usr/lib64/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 14550, in <lambda>

lambda event: event.callable(*event.args, **event.kw) )

File "/usr/lib64/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 9235, in SetFocus?

return _core_.Window_SetFocus(*args, **kwargs)

TypeError?: in method 'Window_SetFocus', expected argument 1 of type 'wxWindow *'

but it doesn't affect operation and it's better than leaving the code in a broken state on svn. Will fix ASAP.

Location:
trunk/peppy
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/peppy/actions/minibuffer.py

    r1477 r1487  
    235235            self.finish_callback() 
    236236        else: 
     237            self.mode.removeMinibuffer(detach_only=True) 
    237238            if text is not None: 
    238239                error = self.action.processMinibuffer(self, self.mode, text) 
    239240                if error is not None: 
    240241                    self.mode.frame.SetStatusText(error) 
    241             self.removeFromParent() 
     242            self.close() 
     243            #self.removeFromParent() 
    242244 
    243245class IntMinibuffer(TextMinibuffer): 
     
    329331         
    330332    def SetFocus(self): 
     333        dprint(self) 
    331334        self.win.saveSetFocus() 
    332335        self.text.SetInsertionPointEnd() 
     
    379382 
    380383        self.text.Bind(wx.EVT_TEXT_ENTER, self.OnEnter) 
     384        self.win.Bind(wx.EVT_SET_FOCUS, self.OnFocus) 
    381385 
    382386        if self.initial is not None: 
     
    384388            self.text.SetChoices(self.complete(self.initial)) 
    385389        self.text.SetEntryCallback(self.setDynamicChoices) 
     390        #self.text.SetInsertionPointEnd() 
    386391 
    387392        self.win.saveSetFocus = self.win.SetFocus 
     
    389394         
    390395    def SetFocus(self): 
     396        dprint(self) 
    391397        self.win.saveSetFocus() 
     398        self.text.SetInsertionPointEnd() 
     399     
     400    def OnFocus(self, evt): 
     401        dprint() 
    392402        self.text.SetInsertionPointEnd() 
    393403 
  • trunk/peppy/frame.py

    r1462 r1487  
    7777 
    7878class MyNotebook(wx.aui.AuiNotebook, debugmixin): 
     79    debuglevel = 1 
     80     
    7981    def __init__(self, parent, size=wx.DefaultSize): 
    8082        wx.aui.AuiNotebook.__init__(self, parent, size=size, style=wx.aui.AUI_NB_WINDOWLIST_BUTTON|wx.aui.AUI_NB_TAB_MOVE|wx.aui.AUI_NB_TAB_SPLIT|wx.aui.AUI_NB_CLOSE_BUTTON|wx.aui.AUI_NB_SCROLL_BUTTONS, pos=(9000,9000)) 
     
    100102            self.lastActivePage=None 
    101103        page=self.GetPage(newpage) 
    102         wx.CallAfter(self.frame.switchMode) 
     104        #wx.CallAfter(self.frame.switchMode) 
     105        self.frame.switchMode() 
    103106        evt.Skip() 
    104107 
     
    322325 
    323326class BufferFrame(wx.Frame, ClassPrefs, debugmixin): 
     327    debuglevel = 1 
    324328    frameid=0 
    325329    load_error_count = 0 
  • trunk/peppy/main.py

    r1479 r1487  
    2727from peppy.lib.processmanager import * 
    2828from peppy.lib.textutil import piglatin 
     29 
     30OrigCallAfter = wx.CallAfter 
     31def NewCallAfter(*args, **kwargs): 
     32    dprint("CallAfter: args=%s kwargs=%s" % (str(args), str(kwargs))) 
     33    OrigCallAfter(*args, **kwargs) 
     34    #wx.GetApp().cooperativeYield() 
     35wx.CallAfter = NewCallAfter 
    2936 
    3037#### py2exe support 
  • trunk/peppy/major.py

    r1485 r1487  
    222222            self.minibuffer = None 
    223223            self.Layout() 
    224             self.editwin.focus() 
     224            dprint("active major mode = %s, trying to remove minibuffer from %s" % (self.editwin.frame.getActiveMajorMode(), self.editwin)) 
     225            if self.editwin.frame.getActiveMajorMode() == self.editwin: 
     226                self.editwin.focus() 
     227            else: 
     228                dprint("active major mode = %s, tried to remove minibuffer from %s" % (self.editwin.frame.getActiveMajorMode(), self.editwin)) 
    225229 
    226230 
     
    900904        # still in the active tab before setting focus.  Otherwise we might 
    901905        # change tabs unexpectedly. 
    902         if self.frame.getActiveMajorMode() == self: 
     906        if self and self.frame.getActiveMajorMode() == self: 
    903907            self.SetFocus() 
    904908            self.focusPostHook()