+
    Qim  c                  s|  a  0 t $ R t^ RIHt RtRtRtRtRt^ RI	t	^ RI
t
^ RIt^ RIt^ RIHt ^ RIt]P                   ! R	R
4       ^ RIHt ^ RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIH t  ^RI!H"t" ]'       d   ^RI#H$t$  ! R R4      t%]%! 4       t&R]'R&   R R lt(R# )%Manager for accessible object events.)annotationsz$Id$z
$Revision$z$Date$z$Copyright (c) 2011-2024 Igalia, S.L.ZLGPLN)TYPE_CHECKINGAtspiz2.0)r   )GLib)braille)debug)focus_manager)input_event)input_event_manager)script_manager)settings)systemd)AXObject)AXUtilities)AXUtilitiesDebugging)defaultc                  s<   ] tR t^AtRt^t^t^t^t^t	^t
R R ltR R ltR R ltR,R R	 lltR
 R ltR R ltR R ltR-R R lltR R ltR R ltR R ltR R ltR R ltR R ltR R lt]R.R! R" ll4       tR.R# R$ lltR% R& ltR' R( ltR) R* ltR+t R # )/EventManagerr    c                   V ^8  d   QhRR/#    returnNone Zformat   "7/usr/lib/python3.14/site-packages/orca/event_manager.py__annotate__EventManager.__annotate__K   s     Q Q$ Q    c                	s   \         P                  ! \         P                  R R4       / V n        RV n        RV n        \        P                  ! 4       V n        \        P                  ! ^ 4      V n        ^ V n        \        P                  ! 4       V n        \         P"                  P%                  V P&                  4      V n        / V n        \         P                  ! \         P                  RR4       R# )zEVENT MANAGER: InitializingTFzEvent manager initializedN)r   print_message
LEVEL_INFO_script_listener_counts_active_paused	itertoolsZcount_counterqueuePriorityQueue_event_queue	_gidle_id	threadingZLock_gidle_lockr   ZEventListenerZnew_enqueue_object_event	_listener_event_historyself   &r   __init__ZEventManager.__init__K   s    E,,.KTR79$""!) " 	  $>>+.3.A.A.E.EdF`F`.aCEE,,.I4Pr   c               r   r   r   r   r   r   r   r   Z   s     
P 
P$ 
Pr   c                sh   \         P                  ! \         P                  RRR4       V P                  '       d)   \         P                  ! \         P                  RR4       R# \        P
                  ! 4       P                  4        RV n        \         P                  ! \         P                  RR4       R# )z,Called when this event manager is activated.zEVENT MANAGER: ActivatingTz EVENT MANAGER: Already activatedNzEVENT MANAGER: Activated)r   r   r   r!   r	   get_managerZstart_key_watcherr.   r0   r   activateZEventManager.activateZ   s{     	E,,.I4QUV<<< 0 02TVZ['');;=E,,.H$Or   c               r   r   r   r   r   r   r   r   f   s     R RD Rr   c                s   \         P                  ! \         P                  RRR4       V P                  '       g)   \         P                  ! \         P                  RR4       R# \        P
                  ! 4       P                  4        RV n        \        P                  ! ^ 4      V n	        / V n
        \         P                  ! \         P                  RR4       R# )z.Called when this event manager is deactivated.zEVENT MANAGER: DeactivatingTz"EVENT MANAGER: Already deactivatedNFzEVENT MANAGER: Deactivated)r   r   r   r!   r	   r2   Zstop_key_watcherr%   r&   r'   r    r.   r0   r   
deactivateZEventManager.deactivatef   s     	E,,.KTSWX||| 0 02VX\]'')::<!//2')$E,,.JDQr   c               s(    V ^8  d   QhRRRRRRRR/# )r   pauseboolclear_queuereasonstrr   r   r   r   r   r   r   r   t   s2     
K 
K
K/3
KEH
K	
Kr   c                s   RV RV RV 2p\         P                  ! \         P                  VR4       Wn        V'       d   \        P
                  ! ^ 4      V n        \        P                  ! 4       P                  W4       R# )zPauses/unpauses event queuing.zEVENT MANAGER: Pause queueing: z. Clear queue: z. TN)
r   r   r   r"   r%   r&   r'   r	   r2   Zpause_key_watcher)r/   r5   r7   r8   msg   &&&& r   pause_queuingZEventManager.pause_queuingt   si    
 0wok]RTU[T\]E,,c48 % 3 3A 6D'');;EJr   c                    V ^8  d   QhRRRR/# )r   eventAtspi.Eventr   Zintr   r   r   r   r   r      s      ; 3 r   c                s0   VP                   pVP                  R4      '       d   \        P                  pEMVR8X  d_   \        P
                  ! VP                  4      '       g'   \        P                  ! VP                  4      '       d   \        P                  pEMMVP                  R4      '       d   \        P                  pEM$VP                  R4      '       d   \        P                  pMVP                  R4      '       d   VP                  \        P                  P                  8X  d   \        P                  pMVP                  \        P                  P                  8X  d   \        P                  pMq\        P                  pM`VP                  R4      '       d   \        P                  pM8VP                  R4      '       d   \        P                   pM\        P                  pRVR	V 2.p\"        P$                  ! \"        P&                  VR
4       V# )z+Returns the priority associated with event.windowobject:state-changed:activeobject:state-changed:focused object:active-descendant-changedzobject:announcementz"object:state-changed:invalid-entryobject:children-changedEVENT MANAGER:zhas priority level: T)type
startswithr   PRIORITY_IMPORTANTr   is_framesourceZis_dialog_or_alertPRIORITY_HIGHdetail1r   ZLiveZ	ASSERTIVEZPOLITEPRIORITY_NORMALPRIORITY_LOWERPRIORITY_LOWr   print_tokensr   )r/   r>   
event_typeprioritytokenss   &&   r   _get_priorityZEventManager._get_priority   sz    ZZ
  **#66H88!!%,,//;3Q3QRWR^R^3_3_#66H""#ABB#11H""#EFF#11H""#899}}

 4 44'::%**"3"33'55'77""#GHH $22H""#<==#00H#33H"E-A(+LM5++VT:r   c               r=   )r   r>   r?   r   zAtspi.Event | Noner   r   r   r   r   r      s     S Sk S6H Sr   c                s  a V3R lpV3R lpV3R lpV3R lpV P                   P                  ;_uu_ 4         \        \        V P                   P                  4      4      pRRR4       X EF  w  rpVS8X  d    R# V! V4      '       d2   RSR	VR
.p\        P                  ! \        P                  VR4       Vu # V! V4      '       d2   RSR	VR.p\        P                  ! \        P                  VR4       Vu # V! V4      '       d2   RSR	VR.p\        P                  ! \        P                  VR4       Vu # V! V4      '       g   K  RSR	VR.p\        P                  ! \        P                  VR4       Vu # 	  R#   \        P
                   d9   pRT 2p\        P                  ! \        P                  TR4       . p Rp?ELeRp?ii ; i  + '       g   i     ELv; i)zMReturns the event which renders this one no longer worthy of being processed.c                s>  < V P                   SP                   8H  ;'       d}    V P                  SP                  8H  ;'       d\    V P                  SP                  8H  ;'       d;    V P                  SP                  8H  ;'       d    V P                  SP                  8H  # N)rF   rJ   rL   detail2any_data)xr>   s   &r   is_sameZ.EventManager._is_obsoleted_by.<locals>.is_same   s    66UZZ' 1 1HH,1 1II.1 1 II.1 1 JJ%..0	1r   c                s  <a  0 Rmp\         ;QJ d    V 3R lV 4       F  '       g   K   RM	  RM! V 3R lV 4       4      '       g   R# S P                  SP                  8H  ;'       d    S P                  SP                  8H  # )document:page-changedc              3  Z   <"   T F   pSP                   P                  V4      x  K"  	  R # 5irU   rF   rG   .0etyperX      & r   	<genexpr>Z[EventManager._is_obsoleted_by.<locals>.obsoletes_if_same_type_and_object.<locals>.<genexpr>   #     GYEqvv((//Y   (+TF>	   r@   object:state-changedrZ   object:property-changerD   object:text-caret-movedobject:selection-changedzobject:text-selection-changedrC   )anyrJ   rF   rX   Z	skippabler>      f r   !obsoletes_if_same_type_and_objectZHEventManager._is_obsoleted_by.<locals>.obsoletes_if_same_type_and_object   sX    
I 3GYG333GYGGG88u||+DD%**0DDr   c                s  <a  S P                   SP                   8w  gR   S P                  SP                  8w  g7   S P                  SP                  8w  g   S P                  SP                  8w  d   R # R0p\        ;QJ d    V 3R lV 4       F  '       g   K   RM	  R M! V 3R lV 4       4      '       g   R # \
        P                  ! S P                  4      \
        P                  ! SP                  4      8H  # )FrB   c              3  r[   rU   r\   r]   r`   r   ra   Z[EventManager._is_obsoleted_by.<locals>.obsoletes_if_same_type_in_sibling.<locals>.<genexpr>   rb   rc   T)rF   rL   rV   rW   rh   r   Z
get_parentrJ   ri   rj   r   !obsoletes_if_same_type_in_siblingZHEventManager._is_obsoleted_by.<locals>.obsoletes_if_same_type_in_sibling   s    vv#qyyEMM'AQYYRWR_R_E_**. /I 3GYG333GYGGG&&qxx0H4G4G4UUUr   c                sT  <a  R R0p\         ;QJ d    V 3R lV 4       F  '       g   K   RM	  RM! V 3R lV 4       4      '       g   R# \         ;QJ d    V3R lV 4       F  '       g   K   RM	  RM! V3R lV 4       4      '       g   R# S P                  SP                  8X  d   R# R# )window:activatezwindow:deactivatec              3  r[   rU   r\   r]   r`   r   ra   PEventManager._is_obsoleted_by.<locals>.obsoletes_window_event.<locals>.<genexpr>   rb   rc   TFc              3  r[   rU   r\   )r^   r_   r>   r`   r   ra   rn      s#     Kuzz,,U33rc   )rh   rJ   ri   rj   r   obsoletes_window_eventZ=EventManager._is_obsoleted_by.<locals>.obsoletes_window_event   sp    !#I 3GYG333GYGGG3KK333KKKKxx5<<'r   z,EVENT MANAGER: Exception in _isObsoletedBy: TNrE   zobsoleted byzmore recent duplicatez.more recent event of same type for same objectz+more recent event of same type from siblingz'more recent window (de)activation event)
r'   ZmutexZlistZreversedr%   Emptyr   r   r   rP   )r/   r>   rY   rk   rl   ro   Zeventserrorr:   Z	_priorityr$   erS   s   &f           r   _is_obsoleted_byZEventManager._is_obsoleted_by   s   	1	E 
	V	 $$$ht'8'8'>'>?@ % '-"IEzqzz*E>113""5#3#3VTB033*E>1JL""5#3#3VTB033*E>1GI""5#3#3VTB%a((*E>1CE""5#3#3VTB- '-0 ; ;; DUGL##E$4$4c4@ %$$s.   G(E??G-GGGGG 	c               r=   r   r>   r?   r   r6   r   r   r   r   r   r      s     u u[ uT ur   c                sz    \         P                  ! \         P                  R4       RV.p\         P                  ! \         P                  VR4       V P                  '       d   V P
                  '       d+   Rp\         P                  ! \         P                  VR4       R# VP                  pVP                  R94      '       d   R# \        P                  ! VP                  4      '       d6   RV9   d/   RV R2p\         P                  ! \         P                  VR4       R# \        P                  ! VP                  4      '       d   \        P                  ! VP                  4      p\        P                  ! V4      R	8X  d/   RV R
2p\         P                  ! \         P                  VR4       R# RV R2p\         P                  ! \         P                  VR4       R# \        P                  ! VP                  4      '       d   VP                  R4      '       d@   VP                   R8  d/   RV R2p\         P                  ! \         P                  VR4       R# VP                  R4      '       g/   RV R2p\         P                  ! \         P                  VR4       R# \        P"                  ! VP                  4      '       g'   \        P$                  ! VP                  4      '       d/   RV R2p\         P                  ! \         P                  VR4       R# \&        P(                  ! 4       P+                  4       pWaP                  8X  d/   RV R2p\         P                  ! \         P                  VR4       R# WaP,                  8X  d/   RV R2p\         P                  ! \         P                  VR4       R# \        P.                  ! VP                  4      '       d/   RV R2p\         P                  ! \         P                  VR4       R# \        P0                  ! VP                  4      '       d   \        P2                  ! VP                  4      '       g/   RV R2p\         P                  ! \         P                  VR4       R# VP                  R4      '       dA   VP4                  '       d/   RV R2p\         P                  ! \         P                  VR4       R# VP                  R4      '       d   \        P6                  ! VP                  4      '       d_   \        P8                  ! VP                  R4      pV'       d6   VR8w  d/   RV R2p\         P                  ! \         P                  VR4       R# V P:                  P=                  VR:4      w  r\        P                  ! VP                  4      pV\?        V4      8H  ;'       d     \@        P@                  ! 4       V	,
          R8  p
\?        V4      \@        P@                  ! 4       3V P:                  V&   V
'       d/   RV R2p\         P                  ! \         P                  VR4       R# \        P                  ! V4      R	8X  d/   RV R
2p\         P                  ! \         P                  VR4       R# VP                  R4      '       d]   VP,                  pVe   \        PB                  ! V4      '       d/   RV R2p\         P                  ! \         P                  VR4       R# R# VP                  R4      '       Ed   RV9   d'   V'       d   \        PD                  ! V4      '       d   R# RV9   d'   VP                  \        PF                  ! 4       8X  d   R# VP,                  pVe   \        PD                  ! V4      '       d/   RV R 2p\         P                  ! \         P                  VR4       R# \        PH                  ! V4      '       g   \        PJ                  ! V4      '       d/   RV R!2p\         P                  ! \         P                  VR4       R# \L        P(                  ! 4       PO                  4       pVf/   RV R"2p\         P                  ! \         P                  VR4       R# VPP                  \        P                  ! VP                  4      8w  d/   RV R#2p\         P                  ! \         P                  VR4       R# VP                  R$4      '       Ed.   \        PR                  ! VP                  4      pR%V9   Ed   V\T        PV                  PX                  \T        PV                  PZ                  \T        PV                  P\                  \T        PV                  P^                  \T        PV                  P`                  \T        PV                  Pb                  \T        PV                  Pd                  \T        PV                  Pf                  \T        PV                  Ph                  \T        PV                  Pj                  \T        PV                  Pl                  \T        PV                  Pn                  \T        PV                  Pp                  \T        PV                  Pr                  39   d/   RV R&2p\         P                  ! \         P                  VR4       R# R# R'V9   dj   V\T        PV                  Pt                  \T        PV                  Pv                  39   d/   RV R&2p\         P                  ! \         P                  VR4       R# R# VP                  R(4      '       dW   \        PD                  ! VP                  4      '       d/   RV R)2p\         P                  ! \         P                  VR4       R# R# VP                  R*4      '       Ed@   \        PR                  ! VP                  4      pVPy                  R+4      '       d   V\T        PV                  Pz                  \T        PV                  Pp                  \T        PV                  Pn                  \T        PV                  P|                  \T        PV                  Pr                  \T        PV                  P~                  39   d/   RV R,2p\         P                  ! \         P                  VR4       R# R-V9   dW   \        P                  ! VP                  4      '       g/   RV R.2p\         P                  ! \         P                  VR4       R# R# R/V9   dc   VP4                  '       gO   V\T        PV                  P                  39   d/   RV R02p\         P                  ! \         P                  VR4       R# R# R1V9   dj   V\T        PV                  P                  \T        PV                  P                  39  d/   RV R&2p\         P                  ! \         P                  VR4       R# R# R2V9   Ed    V\T        PV                  P                  \T        PV                  P                  \T        PV                  P                  \T        PV                  P                  \T        PV                  Pd                  \T        PV                  P                  \T        PV                  P                  \T        PV                  P                  39  d/   RV R2p\         P                  ! \         P                  VR4       R# R# VP                  R4      '       dq   \        PR                  ! VP                  4      pV\T        PV                  P                  39   d/   RV R&2p\         P                  ! \         P                  VR4       R# R# VP                  R34      '       d   R4V9   d@   VP                   R58  d/   RV R62p\         P                  ! \         P                  VR4       R# VPy                  R+4      '       dK   \        P                  ! V4      '       d/   R7V R82p\         P                  ! \         P                  VR4       R# R# R# );z-Returns True if this event should be ignored. rE   TzKEVENT MANAGER: Ignoring because manager is not active or queueing is pausedFZfocusedzEVENT MANAGER: Ignoring z based on type and rolezmutter-x11-framesz based on applicationzEVENT_MANAGER: Not ignoring z due to rolezobject:text-changed:inserti  zEVENT_MANAGER: Ignoring z due to size of inserted textrf   z# due to source being locus of focusz% due to any_data being locus of focusz due to source being selectedz due to source being focusedrB   liveZoffz  due to source being live regiong?z( due to multiple instances in short timerC   z# due to null/invalid event.any_datarD   Zremovez  due to null/dead event.any_dataz due to role of event.any_dataz" because there is no active scriptz% because event is not from active appre   Znamez  due to role of unfocused sourcevaluerg   z from dead sourcerd   Zsystemz based on roleZcheckedz! of unfocused, non-showing sourceZselectedz" due to role of source and detail1Z	sensitiveZshowingzobject:text-changedZinserti  z due to inserted text sizez EVENT MANAGER: Ignoring because z is suspected spam)r@   zmouse:button)N    )Mr   r   r   rP   r!   r"   rF   rG   r   Z	is_windowrJ   rI   get_applicationr   Zget_nameZis_textrV   Zis_notificationZis_alertr   r2   get_locus_of_focusrW   Zis_selectedZ
is_focusedZmanages_descendantsrL   Z
is_sectionZget_attributer-   getZhashtimeZis_invalid_roleis_deadget_desktopZis_menu_relatedZis_imager
   get_active_scriptappZget_roler   ZRoleZCANVASZ	CHECK_BOXZICONZIMAGEZLISTZ	LIST_ITEMZMENUZ	MENU_ITEMZPANELZRADIO_BUTTONZSECTIONZ	TABLE_ROWZ
TABLE_CELLZ	TREE_ITEMZ
SPLIT_PANEZ
SCROLL_BARendswithZTABLEZTREEZ
TREE_TABLEZ
is_showingZPUSH_BUTTONZTEXTZENTRYZALERTZ	ANIMATIONZDIALOGZINFO_BARZNOTIFICATIONZ
STATUS_BARZTOOL_TIPZLABELZis_selectable)r/   r>   rS   r:   rQ   r   Zfocusrv   Zlast_appZ	last_timeZignoreZchildscriptZrole   &&            r   _ignoreZEventManager._ignore   s    	E,,b1"E*5++VT:|||t|||_C 0 0#t<ZZ
  !;<<
   ..9
3J,ZL8OPC 0 0#t< ----ell;C  %)<<0<QR##E$4$4c4@0LIC 0 0#t< u||,,$$%ABBu}}W[G[0<YZ##E$4$4c4@(()BCC4ZLM##E$4$4c4@ &&u||448L8LU\\8Z8Z0LIC 0 0#t< ))+>>@LL 0<_`C 0 0#t<NN"0<abC 0 0#t<""5<<000<YZC 0 0#t< !!%,,//225<<@@4ZL@\]##E$4$4c4@$$%CDD4ZL@\]##E$4$4c4@  !=>>%%ell33))%,,?D4ZL@`a##E$4$4c4@"1155j)L))%,,7T#Y&HH499;+BS+H*.s)TYY[*@J',ZL8`aC 0 0#t< S!%88,ZL8MNC 0 0#t<  !CDDNNE} ; ;E B B0<_`##E$4$4c4@  !:;;:%%H4D4DU4K4K:%%,,+:Q:Q:S*SNNE} 0 0 7 70<\]##E$4$4c4@**511[5I5I%5P5P0<Z[##E$4$4c4@#//1CCEF~0<^_##E$4$4c4@zz[88FF0<ab##E$4$4c4@  !9::$$U\\2D#EJJ--!JJ00!JJOO!JJ,,!JJOO!JJ00!JJOO!JJ00!JJ,,!JJ33!JJ..!JJ00!JJ11!JJ002 2 5ZL@`aC''(8(8#tD*$EJJ115::3H3HII4ZL@`aC''(8(8#tD  !;<<--0<MN##E$4$4c4@  !788$$U\\2D""8,,EJJ,,!JJ11!JJ00!JJOO!JJ00!JJ113 3 5ZLOC''(8(8#tDJ&"--ell;;4ZL@abC''(8(8#tDZ'}}}%**2H2H1I)I4ZL@bcC''(8(8#tDj(

1A1ABB4ZL@`aC''(8(8#tDJ&

 0 0 %

 4 4 %

 1 1 %

 3 3 %

 %

 7 7 %

 5 5 %

 3 3 5 5 5ZLMC''(8(8#tD  !:;;$$U\\2D

(())0<\]##E$4$4c4@  !677:%%--$*>0<VW##E$4$4c4@""8,,1J1J51Q1Q8DVW##E$4$4c4@r   c               $    V ^8  d   QhRRRRRR/# )r   r>   z$input_event.InputEvent | Atspi.Event
is_enqueuer6   r   r   r   r   r   r   r   r     s(     ; ;3; ; 
	;r   c                s   \         P                  \         P                  8  d   R# . p\        V\        P
                  4      '       d)   VP                  VP                  VP                  .4       MM\        V\        P                  4      '       d   VP                  VP                  4       MVP                  V4       V'       d   R.VR&   MR.VR&   \         P                  ! \         P                  VR4       R# )z:Convenience method to output queue-related debugging info.NzEVENT MANAGER: Queueing:rx   rx   NzEVENT MANAGER: DequeueingT)r   r   
debugLevelZ
isinstancer   ZKeyboardEventZextendZkeyval_nameZhw_codeZBrailleEventZappendr>   rP   )r/   r>   r   rS   s   &&& r   _queue_printlnZEventManager._queue_println  s     e...e[6677MM5,,emm<={7788MM%++&MM% 45F3K67F3K5++VT:r   c               r=   )r   rr   r?   r   r   r   r   r   r   r   r     s     K K{ Kt Kr   c                s6   V P                   P                  4       ^K8  dN   \        P                  ! 4       P	                  4       '       d%   \        P                  ! 4       P                  R4       V P                  V4      '       d   R# V P                  V4       \        P                  ! VP                  4      pRV.p\        P                  ! \        P                  VR4       \        P                  ! 4       P                  W!P                  4      pV\         P                   ! 4       3VP"                  VP$                  &   V P&                  ;_uu_ 4        V P)                  V4      p\+        V P,                  4      pV P                   P/                  WVV34       RVRV RV 2.p\        P                  ! \        P                  VR4       V P0                  '       g&   \2        P4                  ! V P6                  4      V n        RRR4       R#   + '       g   i     R# ; i)z!Callback for Atspi object events.zEvent queue size > 75Nz&EVENT MANAGER: App for event source isTzEVENT MANAGER: Queued
priority: , counter: )r'   qsizer   r2   Zis_systemd_managedZnotify_aliver   r   r   ry   rJ   r   rP   r   r
   
get_scriptr|   Zevent_cacherF   r*   rT   Znextr$   Zputr(   r   Zidle_add_dequeue_object_event)r/   rr   r   rS   r   rR   counters   &&     r   r+   Z"EventManager._enqueue_object_event  s~   
 ""$r)g.A.A.C.V.V.X.X!../FG<<??A))!((3:C@5++VT:++-88hhG&'%5166"))!,H4==)G!!8a"89-qJxjT[S\2]^Fu//>>>>!%t/I/I!J s   B,HH	c               r   r   r   r6   r   r   r   r   r   r   !  s     	 	d 	r   c                	s`   \         P                  ! 4       P                  4       '       d   R # \        P                  ! 4       P	                  4       f^   \        P                  ! 4       P                  4       p\        P                  ! 4       P                  VR4       \        P                  ! 4        R # )FzNo focus)	r   r2   Zfocus_and_window_are_unknownr
   r   Zget_default_scriptset_active_scriptr   ZdisableBraille)r/   Zdefault_scripts   & r   _on_no_focusZEventManager._on_no_focus!  st    $$&CCEE%%'99;C+779LLNN&&(::>:V""$r   c               r   r   r   r   r   r   r   r   ,  s        t  r   c                s8   Rp V P                   P                  4       w  r#pV P                  VRR7       RVRV RV 2.p\        P                  ! \        P
                  VR4       \        P                  ! 4       pRV RVP                  P                  4        R	V P                   P                  4        R
2p\        P                  ! \        P
                  VR4       V P                  V4       R\        P                  ! 4       V,
          R RV RVP                  P                  4        R2p\        P                  ! \        P
                  VR4       V P                  ;_uu_ 4        V P                   P                  4       '       d+   \        P                  ! RV P                   4       ^ V n        RpRRR4       V#   + '       g   i     T# ; i  \$        P&                   d6    Rp\        P                  ! \        P(                  TR4       ^ T n        Rp T# i ; i)/Handles all object events destined for scripts.TF)r   zEVENT MANAGER: Dequeuedr   r   z
vvvvv START PRIORITY-z OBJECT EVENT z (queue size: z) vvvvvzTOTAL PROCESSING TIME: z.4fz
^^^^^ FINISHED PRIORITY-z ^^^^^
i	  Nz>EVENT MANAGER: Attempted dequeue, but the event queue is empty)r'   Z
get_nowaitr   r   rP   r   r|   rF   Zupperr   r   _process_object_eventr*   Zemptyr   Ztimeout_addr   r(   r%   rp   ZLEVEL_SEVERE)r/   ZrerunrR   r   r>   rS   Z
start_timer:   s   &       r   r   Z"EventManager._dequeue_object_event,  s    	'+'8'8'C'C'E$Hu%8/*XJkZaYb8cdFu//>J)(>%**BRBRBTAU V  $ 1 1 7 7 9:'C   0 0#u=&&u-)$))+
*B3)G,XJnUZZEUEUEWDXX`b   0 0#u=!!!$$**,,$$T4+<+<=%&DN!E	 "  "!  {{ 	RC 2 2C>DNE	s2   E"G &AF;1G ;G	G G AHHc               r=   r   rQ   r9   r   r   r   r   r   r   r   r   N  s     9 9C 9D 9r   c                s   RV 2p\         P                  ! \         P                  VR4       WP                  9   d"   V P                  V;;,          ^,          uu&   R# V P                  P                  V4       ^V P                  V&   R# )z`Tells this module to listen for the given event type.

Arguments:
- event_type: the event type.
z)EVENT MANAGER: registering listener for: TN)r   r   r   r    r,   Zregister)r/   rQ   r:      && r   register_listenerZEventManager.register_listenerN  sl     :*FE,,c48555((494NN##J/78D((4r   c               r=   r   r   r   r   r   r   r   ^  s     9 9c 9d 9r   c                s   RV 2p\         P                  ! \         P                  VR4       WP                  9  d   R# V P                  V;;,          ^,          uu&   V P                  V,          ^ 8X  d,    V P                  P                  V4       V P                  V R# R#   \        P                   d9   pRT RT 2p\         P                  ! \         P                  TR4        Rp?LYRp?ii ; i)zhTells this module to stop listening for the given event type.

Arguments:
- event_type: the event type.
z+EVENT MANAGER: deregistering listener for: TNz4EVENT MANAGER: Exception deregistering listener for z: )r   r   r   r    r,   Z
deregisterr   ZGError)r/   rQ   r:   rq      &&  r   deregister_listenerZ EventManager.deregister_listener^  s     <J<HE,,c48999$$Z0A50''
3q8A))*5 ,,Z8 9 ;; ALZLXZ[`Zab##E$4$4c4@@As   6B" "C/7.C**C/c               r=   r   r   default.Scriptr   r   r   r   r   r   r   r   t  s     / / /4 /r   c                    RV.p\         P                  ! \         P                  VR4       VP                  P	                  4        F  pV P                  V4       K  	  R# )zTells the event manager to start listening for all the event types
of interest to the script.

Arguments:
- script: the script.
z)EVENT MANAGER: Registering listeners for:TN)r   rP   r   	listenerskeysr   r/   r   rS   rQ   r   r   register_script_listenersZ&EventManager.register_script_listenerst  sM     >vF5++VT: **//1J"":. 2r   c               r=   r   r   r   r   r   r   r     s     1 1. 1T 1r   c                r   )zTells the event manager to stop listening for all the event types
of interest to the script.

Arguments:
- script: the script.
z,EVENT MANAGER: De-registering listeners for:TN)r   rP   r   r   r   r   r   r   r   deregister_script_listenersZ(EventManager.deregister_script_listeners  sN     A&I5++VT: **//1J$$Z0 2r   Nc               s$    V ^8  d   QhRRRRRR/# )r   r>   r?   active_scriptdefault.Script | Noner   r   r   r   r   r   r     s$         +@ 	 r   c                sB   V P                   \        P                  ! 4       P                  4       8X  dZ   T;'       g$    \        P                  ! 4       P                  4       pRV.p\        P                  ! \        P                  VR4       V# V P                  P                  R4      '       d|   \        P                  ! V 4      p\        P                  ! 4       P                  VP                  VP                  4      pRV.p\        P                  ! \        P                  VR4       V# Rp\         P"                  ! V P                   4      p\         P$                  ! V4      '       d.   RVR.p\        P                  ! \        P&                  VR4       R# RWPP                   .p\        P                  ! \        P                  VR4       \        P                  ! 4       P                  WPP                   4      pRV.p\        P                  ! \        P                  VR4       V# )	z)Returns the script associated with event.z6EVENT MANAGER: Script for event from locus of focus isTzmouse:z"EVENT MANAGER: Script for event isNrE   z(is defunct. Cannot get script for event.z+EVENT MANAGER: Getting script for event for)rJ   r   r2   rz   r
   r   r   rP   r   rF   rG   r   ZMouseButtonEventr   r   r@   r   ry   
is_defunctZLEVEL_WARNING)r>   r   r   rS   Zmouse_eventr   s   &&    r   _get_script_for_eventZ"EventManager._get_script_for_event  s    <<=446IIKK"VVn&@&@&B&T&T&VFNPVWFu//>M::  **%66u=K#//1<<!3!35F:FCFu//>M))%,,7!!#&&&-WXFu22FDA?llS5++VT:++-88llK6?5++VT:r   c               r   )r   r>   r?   r   r   r   ztuple[bool, str]r   r   r   r   r   r     s)     1H 1H 1H*?1H	1Hr   c                s   VP                   '       g   R# V'       g   V P                  V4      pV'       g   R# \        P                  ! VP                   4      pV'       d   \        P                  ! V4      '       g   R	# VP                  V4      '       g   R
# VP                  V4      '       d   R# VP                  pVP                  R4      '       d   RpMMVP                  R4      ;'       d5    VP                  ;'       d!    \        P                  ! VP                   4      pV'       d7   VP                   \        P                  ! 4       P                  4       8w  d   R# R# VP                  R4      '       d   VP                  '       d   R# VP                  R4      '       da   VP                  '       dO   \        P                  ! VP                   4      '       d)   \        P                  ! VP                   4      '       d   R# VP                  R4      '       dO   \        P                   ! VP                   4      '       d)   \        P"                  ! VP                   4      '       d   R# R# )z@Determines if event should cause us to change the active script.Trm   rA   rB   zobject:state-changed:selectedzobject:state-changed:showing)Fz!event.source? What event.source??)Fz"There is no script for this event.)Fz%The application is unknown to AT-SPI2)Fz/The script says not to activate for this event.)Tz9The script insists it should be activated for this event.)TzWindow activation)Fz+Window activation for already-active window)TzEvent source claimed focus.)Tz Selection change in focused menu)TzModal panel is showing.)Fz/No reason found to activate a different script.)rJ   r   r   ry   Zis_application_in_desktopZis_activatable_eventZforce_script_activationrF   rG   rL   rI   r   r2   get_active_windowZis_menuZis_focusableZis_panelZis_modal)r/   r>   r   r   rQ   Zwindow_activations   &&&   r   _is_activatable_eventZ"EventManager._is_activatable_event  s   
 |||==//6FBB))%,,7{<<SAAAA**511KK))%00TTZZ
  !233 $ * 5 56S T !I !IMM!I !I&1&:&:5<<&H  ||}88:LLNN00GG  !?@@U]]]66  !@AAemmm""5<<00[5M5Mell5[5[;;   !?@@##ELL11k6J6J5<<6X6X22GGr   c               r=   rt   r   r   r   r   r   r     s      ; 4 r   c                	s    \         P                  ! VP                  4      '       d8   R VP                  R.p\        P
                  ! \        P                  VR4       R# R# )zEVENT MANAGER: source ofzis deadTF)r   r}   rJ   rF   r   rP   r   )r/   r>   rS   r   r   _event_source_is_deadZ"EventManager._event_source_is_dead  sE    ELL))0%**iHFu//>r   c               s(    V ^8  d   QhRRRRRRRR/# )r   r>   r?   event_scriptr   r   r   r6   r   r   r   r   r   r     s,       0>O]	r   c                s   W#8X  d9   RVP                    R2p\        P                  ! \        P                  VR4       R# VP                  '       d9   RVP                    R2p\        P                  ! \        P                  VR4       R# \
        P                  ! VP                  4      '       d\   \        P                  \        P                  8X  d9   RVP                    R2p\        P                  ! \        P                  VR4       R# RVP                    R2p\        P                  ! \        P                  VR4       R# )	z/Returns True if this event should be processed.zEVENT MANAGER: Processing z: script for event is activeTz%: script handles events when inactivez!: progress bar verbosity is 'all'zEVENT MANAGER: Not processing z due to lack of reasonF)rF   r   r   r   Zpresent_if_inactiver   Zis_progress_barrJ   r   ZprogressBarVerbosityZPROGRESS_BAR_ALL)r/   r>   r   r   r:   r;   r   _should_process_eventZ"EventManager._should_process_event  s    
 (.uzzl:VWC 0 0#t<+++.uzzl:_`C 0 0#t<&&u||44,,0I0II.uzzl:[\C 0 0#t<.uzzl:PQE,,c48r   c               r=   )r   r>   r?   r   r   r   r   r   r   r   r     s     J J; J4 Jr   c                sd   V P                  V4      '       d   R# \        P                  ! 4       p\        P                  ! 4       pVP                  pVP                  R4      '       d7   VP                  \        P                  ! 4       8X  d   VP                  4        R# \        P                  ! VP                  4      '       g'   \        P                  ! VP                  4      '       d   RVP                  .p\        P                  ! \        P                  VR4       VP                  R4      '       dC   VP!                  4       VP                  8X  d$   VP#                  R4       VP%                  RR4       R# VP                  R4      '       d(   VP'                  R4      '       d   VP                  4        \        P(                  ! VP                  4      '       d7   R	VP                  .p\        P                  ! \        P                  VR4       R# \        P                  \        P*                  8  d=   \,        P.                  ! V4      p\        P0                  ! \        P                  VR4       VP3                  4       pV P5                  W4      pV'       g+   R
p\        P0                  ! \        P                  VR4       R# W8w  d^   V P7                  W4      w  rRV	 RV
 R2p\        P0                  ! \        P                  VR4       V	'       d   VP%                  W4       Tp V P9                  WV4      '       g   R#  VP<                  P?                  VP                  4      pVfI   VP<                  PA                  4        F*  w  rVP                  P                  V4      '       g   K(  Tp M	  Vf8   RVP                   2p\        P0                  ! \        P                  VR4       R# V! V4       R#   \:         d,    Rp\        P0                  ! \        P                  TR4        Li ; i)r   Nzobject:children-changed:removez'EVENT MANAGER: Ignoring defunct object:Tz	window:dez Active window is dead or defunctzwindow:Zdestroyz)EVENT MANAGER: Ignoring iconified object:z%ERROR: Could not get script for eventz%EVENT MANAGER: Change active script: z (Z)zERROR: Active script is Nonez*EVENT MANAGER: No listener for event type )!rs   r
   r2   r   rF   rG   rJ   r   r~   Zreclaim_scriptsr   r}   r   r   rP   r   r   Zclear_stater   r   Zis_iconifiedr   r   Zobject_event_details_as_stringr   r   r   r   r   ZAssertionErrorr   r{   Zitems)r/   r>   Z
script_mgrZ	focus_mgrrQ   rS   r:   r   r   Zset_new_active_scriptr8   ZlistenerZkeyrw   r   r   r   Z"EventManager._process_object_event  s<      ''#//1
!--/	ZZ
  !ABB||{6688&&(ELL))[-C-CELL-Q-Q?NFu//>$$[11i6Q6Q6SW\WcWc6c%%&HI,,T3UV  ++
0C0CI0N0N&&(##ELL11A5<<PFu//>u///&EEeLC 0 0#t<"446++EA9C 0 0#t<",0,F,Fu,U)!9:O9PPRSYRZZ[\C 0 0#t<$,,V< &	 --e]KK L ##''

3$..446
::((--$H 7 >uzzlKC 0 0#t<)  	=0C 0 0#t<	=s   93P/.P/)	r!   r$   r-   r'   r(   r*   r,   r"   r    )TFru   )TrU   )!Z__name__Z
__module__Z__qualname__Z__firstlineno____doc__ZPRIORITY_IMMEDIATErH   rK   rM   rN   rO   r1   r3   r4   r<   rT   rs   r   r   r+   r   r   r   r   r   r   Zstaticmethodr   r   r   r   r   Z__static_attributes__r   r   r   r   r   A   s    /MONLQ
PR
KBSjun;0K8	 D9 9,/1    D1Hf2J Jr   r   _managerc               r   )r   r   r   r   r   r   r   r   r   U  s      \ r   c                 s    \         # )z$Returns the Event Manager singleton.)r   r   r   r   r2   r2   U  s    Or   ))__conditional_annotations__r   Z
__future__r   Z__id__Z__version__Z__date__Z__copyright__Z__license__r#   r%   r)   r|   Ztypingr   ZgiZrequire_versionZgi.repositoryr   r   ru   r   r   r   r   r	   r
   r   r   Z	ax_objectr   Zax_utilitiesr   Zax_utilities_debuggingr   Zscriptsr   r   r   Z__annotations__r2   )r   s   @r   <module>r      s   8 , #6       	   7E "       !     % 8 P Pd &, 'r   