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