OSDN Git Service

Merged main
authorMichael Curran <mick@kulgan.net>
Tue, 4 Aug 2009 01:26:32 +0000 (11:26 +1000)
committerMichael Curran <mick@kulgan.net>
Tue, 4 Aug 2009 01:26:32 +0000 (11:26 +1000)
1  2 
source/virtualBuffers/__init__.py

@@@ -428,14 -429,24 +428,21 @@@ class VirtualBuffer(cursorManager.Curso
                threading.Thread(target=self._loadBuffer).start()\r
  \r
        def _loadBuffer(self):\r
-               self.VBufHandle=NVDAHelper.localLib.VBuf_createBuffer(self.rootNVDAObject.appModule.helperLocalBindingHandle,self.rootDocHandle,self.rootID,self.backendLibPath)\r
-               if not self.VBufHandle:\r
-                       raise RuntimeError("Could not remotely create virtualBuffer")\r
+               try:\r
 -                      self.bindingHandle=VBufClient.VBufClient_connect(self.rootNVDAObject.processID)\r
 -                      if not self.bindingHandle:\r
 -                              raise RuntimeError("Could not inject VBuf lib")\r
 -                      self.VBufHandle=VBufClient.VBufRemote_createBuffer(self.bindingHandle,self.rootDocHandle,self.rootID,self.backendLibPath)\r
++                      self.VBufHandle=NVDAHelper.localLib.VBuf_createBuffer(self.rootNVDAObject.appModule.helperLocalBindingHandle,self.rootDocHandle,self.rootID,self.backendLibPath)\r
+                       if not self.VBufHandle:\r
+                               raise RuntimeError("Could not remotely create virtualBuffer")\r
+               except:\r
+                       log.error("", exc_info=True)\r
+                       queueHandler.queueFunction(queueHandler.eventQueue, self._loadBufferDone, success=False)\r
+                       return\r
                queueHandler.queueFunction(queueHandler.eventQueue, self._loadBufferDone)\r
  \r
-       def _loadBufferDone(self):\r
+       def _loadBufferDone(self, success=True):\r
                self._loadProgressCallLater.Stop()\r
                self.isLoading = False\r
+               if not success:\r
+                       return\r
                if self._hadFirstGainFocus:\r
                        # If this buffer has already had focus once while loaded, this is a refresh.\r
                        speech.speakMessage(_("Refreshed"))\r