Skip to content

Commit 30e005b

Browse files
authored
Merge 03657dc into 239668a
2 parents 239668a + 03657dc commit 30e005b

3 files changed

Lines changed: 11 additions & 7 deletions

File tree

source/NVDAObjects/window/excel.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,9 @@ class ExcelBrowseModeTreeInterceptor(browseMode.BrowseModeTreeInterceptor):
460460

461461
def __init__(self,rootNVDAObject):
462462
super(ExcelBrowseModeTreeInterceptor,self).__init__(rootNVDAObject)
463-
self.passThrough=True
463+
# Note, as _set_passThrough has logic to handle braille and vision updates which are unnecessary when
464+
# initializing this tree interceptor, we set the private _passThrough variable here, which is enough.
465+
self._passThrough = True
464466
browseMode.reportPassThrough.last=True
465467

466468
def _get_currentNVDAObject(self):

source/appModules/excel.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,9 @@ def _get_focusRedirect(self):
3939
e=UIAHandler.handler.lastFocusedUIAElement
4040
if e and e.cachedAutomationID=="CellEdit":
4141
obj=UIA(UIAElement=e)
42-
oldFocus=api.getFocusObject()
43-
if isinstance(oldFocus,ExcelCell):
44-
# Set the edit control's parent as the cell that previously had focus. I.e. the cell being edited.
45-
# otherwise a whole bunch of UIA focus ancestors for the edit control will be reported.
46-
obj.parent=oldFocus
42+
# Set the UIA edit control's parent to the parent of self.
43+
# otherwise a whole bunch of UIA focus ancestors for the edit control will be reported.
44+
obj.parent = self.parent
4745
# Cache this for as long as this object exists.
4846
self.focusRedirect=obj
4947
return obj

source/virtualBuffers/MSHTML.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,11 @@ def __init__(self,rootNVDAObject):
206206
# Force focus mode for applications, and dialogs with no parent treeInterceptor (E.g. a dialog embedded in an application)
207207
if rootNVDAObject.role==controlTypes.Role.APPLICATION or (rootNVDAObject.role==controlTypes.Role.DIALOG and (not rootNVDAObject.parent or not rootNVDAObject.parent.treeInterceptor or rootNVDAObject.parent.treeInterceptor.passThrough)):
208208
self.disableAutoPassThrough=True
209-
self.passThrough=True
209+
# Note, as _set_passThrough has logic to handle braille and vision updates which are unnecessary when
210+
# initializing this tree interceptor, we set the private _passThrough variable here, which is enough.
211+
self._passThrough = True
212+
import browseMode
213+
browseMode.reportPassThrough.last = True
210214

211215
def _getInitialCaretPos(self):
212216
initialPos = super(MSHTML,self)._getInitialCaretPos()

0 commit comments

Comments
 (0)