Skip to content

Commit 493469a

Browse files
authored
Merge aa655cb into 3fa7c63
2 parents 3fa7c63 + aa655cb commit 493469a

1 file changed

Lines changed: 36 additions & 29 deletions

File tree

source/JABHandler.py

Lines changed: 36 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -701,37 +701,40 @@ def internal_hasFocus(sourceContext):
701701
@AccessBridge_PropertyNameChangeFP
702702
def event_nameChange(vmID,event,source,oldVal,newVal):
703703
jabContext=JABContext(vmID=vmID,accContext=source)
704-
focus=api.getFocusObject()
705-
if isinstance(focus, NVDAObjects.JAB.JAB) and focus.jabContext == jabContext:
706-
obj = focus
707-
else:
708-
obj = NVDAObjects.JAB.JAB(jabContext=jabContext)
709-
if obj:
710-
eventHandler.queueEvent("nameChange", obj)
704+
if jabContext.hwnd:
705+
focus = api.getFocusObject()
706+
if isinstance(focus, NVDAObjects.JAB.JAB) and focus.jabContext == jabContext:
707+
obj = focus
708+
else:
709+
obj = NVDAObjects.JAB.JAB(jabContext=jabContext)
710+
if obj:
711+
eventHandler.queueEvent("nameChange", obj)
711712
bridgeDll.releaseJavaObject(vmID,event)
712713

713714
@AccessBridge_PropertyDescriptionChangeFP
714715
def event_descriptionChange(vmID,event,source,oldVal,newVal):
715716
jabContext=JABContext(vmID=vmID,accContext=source)
716-
focus=api.getFocusObject()
717-
if isinstance(focus, NVDAObjects.JAB.JAB) and focus.jabContext == jabContext:
718-
obj = focus
719-
else:
720-
obj = NVDAObjects.JAB.JAB(jabContext=jabContext)
721-
if obj:
722-
eventHandler.queueEvent("descriptionChange", obj)
717+
if jabContext.hwnd:
718+
focus = api.getFocusObject()
719+
if isinstance(focus, NVDAObjects.JAB.JAB) and focus.jabContext == jabContext:
720+
obj = focus
721+
else:
722+
obj = NVDAObjects.JAB.JAB(jabContext=jabContext)
723+
if obj:
724+
eventHandler.queueEvent("descriptionChange", obj)
723725
bridgeDll.releaseJavaObject(vmID,event)
724726

725727
@AccessBridge_PropertyValueChangeFP
726728
def event_valueChange(vmID,event,source,oldVal,newVal):
727729
jabContext=JABContext(vmID=vmID,accContext=source)
728-
focus=api.getFocusObject()
729-
if isinstance(focus, NVDAObjects.JAB.JAB) and focus.jabContext == jabContext:
730-
obj = focus
731-
else:
732-
obj = NVDAObjects.JAB.JAB(jabContext=jabContext)
733-
if obj:
734-
eventHandler.queueEvent("valueChange", obj)
730+
if jabContext.hwnd:
731+
focus = api.getFocusObject()
732+
if isinstance(focus, NVDAObjects.JAB.JAB) and focus.jabContext == jabContext:
733+
obj = focus
734+
else:
735+
obj = NVDAObjects.JAB.JAB(jabContext=jabContext)
736+
if obj:
737+
eventHandler.queueEvent("valueChange", obj)
735738
bridgeDll.releaseJavaObject(vmID,event)
736739

737740
@AccessBridge_PropertyStateChangeFP
@@ -741,6 +744,8 @@ def internal_event_stateChange(vmID,event,source,oldState,newState):
741744

742745
def event_stateChange(vmID,accContext,oldState,newState):
743746
jabContext=JABContext(vmID=vmID,accContext=accContext)
747+
if not jabContext.hwnd:
748+
return
744749
focus=api.getFocusObject()
745750
#For broken tabs and menus, we need to watch for things being selected and pretend its a focus change
746751
stateList=newState.split(',')
@@ -770,14 +775,16 @@ def internal_event_caretChange(vmID, event,source,oldPos,newPos):
770775

771776
def event_caret(vmID, accContext, hwnd):
772777
jabContext = JABContext(hwnd=hwnd, vmID=vmID, accContext=accContext)
773-
focus = api.getFocusObject()
774-
if isinstance(focus, NVDAObjects.JAB.JAB) and focus.jabContext == jabContext:
775-
obj = focus
776-
else:
777-
obj = NVDAObjects.JAB.JAB(jabContext=jabContext)
778-
if not obj:
779-
return
780-
eventHandler.queueEvent("caret", obj)
778+
if jabContext.hwnd:
779+
focus = api.getFocusObject()
780+
if isinstance(focus, NVDAObjects.JAB.JAB) and focus.jabContext == jabContext:
781+
obj = focus
782+
else:
783+
obj = NVDAObjects.JAB.JAB(jabContext=jabContext)
784+
if not obj:
785+
return
786+
eventHandler.queueEvent("caret", obj)
787+
781788

782789
def event_enterJavaWindow(hwnd):
783790
internalQueueFunction(enterJavaWindow_helper,hwnd)

0 commit comments

Comments
 (0)