%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python3/dist-packages/orca/__pycache__/
Upload File :
Create Path :
Current File : //usr/lib/python3/dist-packages/orca/__pycache__/mouse_review.cpython-312.pyc

�

g
f�\���dZdZdZdZdZdZddlZddlZddlm	Z	ddl
Z
e
jd	d
�ddlm
Z
ddlmZ	e
jd
d�ddlmZdZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddl!m"Z"Gd�d �Z#Gd!�d"�Z$Gd#�d$�Z%e%�Z&d%�Z'y#e$rdZY�zwxYw)&zMouse review mode.z$Id$z
$Revision$z$Date$z@Copyright (c) 2008 Eitan IsaacsonCopyright (c) 2016 Igalia, S.L.�LGPL�N)�deque�Atspiz2.0)r)�GLib�Wnckz3.0)rTF�)�cmdnames)�debug)�
focus_manager)�keybindings)�input_event)�messages)�script_manager)�settings_manager)�AXComponent)�AXObject)�AXText)�AXUtilitiesc�6�eZdZdZd	d�Zd�Zd�Zd�Zd�Zd�Z	y)
�_StringContextz8The textual information associated with an _ItemContext.Nc��||_||_||_||_||_tj|||�|_y)a�Initialize the _StringContext.

        Arguments:
        - string: The human-consumable string
        - obj: The accessible object associated with this string
        - start: The start offset with respect to entire text, if one exists
        - end: The end offset with respect to the entire text, if one exists
        - script: The script associated with the accessible object
        N)�_obj�_script�_string�_start�_endr�get_range_rect�_rect)�self�obj�script�string�start�ends      �3/usr/lib/python3/dist-packages/orca/mouse_review.py�__init__z_StringContext.__init__?s=����	������������	��*�*�3��s�;��
�c���|duxrj|j|jk(xrO|j|jk(xr4|j|jk(xr|j|jk(S�N)rrrr�r�others  r%�__eq__z_StringContext.__eq__Qsg���D� �(��	�	�U�Z�Z�'�(�����
�
�-�(����u�|�|�+�(��	�	�U�Z�Z�'�		(r'c�"�|�y|jr|jsy|j�}|dk(ry|j�}|dk(ry|d|dk7rQ|j|jk(r8|jjd�}|r|d|z|dk(r
g|dd�|d��}t	j
�}|\|_|_|_|_	t	j
�}|\|_|_|_|_	tj||�|k7ry|jr&|jj�|jvsyd|jd|jdg}tjtj|d	�y	)
�-Returns True if this is a substring of other.F)rrrr��
rzMOUSE REVIEW: 'z' is substring of '�'T)r�getBoundingBoxr�countr�Rect�x�y�width�heightr�get_rect_intersection�stripr
�printTokens�
LEVEL_INFO)rr+�thisBox�otherBox�thisNewLineCount�thisRect�	otherRect�tokenss        r%�
isSubstringOfz_StringContext.isSubstringOfXsg���=���	�	�e�j�j���%�%�'���l�"���'�'�)���|�#��
�1�:��!��$����e�j�j�)@�#�|�|�1�1�$�7���G�A�J�1A�$A�X�a�[�$P�4�7�1�Q�<�4��!��4���:�:�<��BI�?��
�H�J������J�J�L�	�FN�C�	��Y�[�)�/�9�3C��,�,�X�y�A�X�M��������!3�!3�!5����!F��#�T�\�\�3H�%�-�-�Y\�]��
���%�*�*�F�D�9�r'c��|jj|jj|jj|jjfS)z>Returns the bounding box associated with this context's range.)rr5r6r7r8�rs r%r2z_StringContext.getBoundingBoxs7���z�z�|�|�T�Z�Z�\�\�4�:�:�+;�+;�T�Z�Z�=N�=N�N�Nr'c��|jS�z0Returns the string associated with this context.)rrEs r%�	getStringz_StringContext.getString�s���|�|�r'c���|js(d}tjtj|d�y|js(d}tjtj|d�y|jj
j
|j|j��}|jjj|j�}tj�j|j|j|jtj�|jj!||d��|jj#|jd�y)�"Presents this context to the user.z2MOUSE REVIEW: Not presenting due to lack of scriptTFz2MOUSE REVIEW: Not presenting due to lack of string)r r")�voice�	interrupt���)rr
�printMessager<r�speechGeneratorrKr�	utilities�adjustForRepeatsr�
getManager�emit_region_changedrr�MOUSE_REVIEW�speakMessage�displayBrailleMessage)r�msgrKr"s    r%�presentz_StringContext.present�s����|�|�F�C����u�/�/��d�;���|�|�F�C����u�/�/��d�;�����,�,�2�2�t�y�y����2�V�����'�'�8�8����F��� � �"�6�6��I�I�t�{�{�D�I�I�}�/I�/I�	K����!�!�&���!�G����*�*�4�<�<��<�r')N�rr)
�__name__�
__module__�__qualname__�__doc__r&r,rCr2rHrX�r'r%rr<s%��B�<�$(�%�NO�
�
r'rc�`�eZdZdZdd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zy)�_ItemContextz;Holds all the information of the item at a specified point.Nc���||_||_||_||_||_||_|j
�|_tj�|_	tj|�|_y)aInitialize the _ItemContext.

        Arguments:
        - x: The X coordinate
        - y: The Y coordinate
        - obj: The accessible object of interest at that coordinate
        - boundary: The accessible-text boundary type
        - frame: The containing accessible object (often a top-level window)
        - script: The script associated with the accessible object
        N)
�_x�_yr�	_boundary�_framer�_getStringContextr�time�_timer�get_rectr)rr5r6r �boundary�framer!s       r%r&z_ItemContext.__init__�s]����������	�!����������-�-�/����Y�Y�[��
� �)�)�#�.��
r'c��|duxrO|j|jk(xr4|j|jk(xr|j|jk(Sr))rerrr*s  r%r,z_ItemContext.__eq__�sP���D� �.����u�|�|�+�.��	�	�U�Z�Z�'�.�����
�
�-�	.r'c��|j|jk7s|j|jk7r(d}tjtj|d�y|j�rI|j�r9|j
|�s(d}tjtj|d�y|j|jk(rA|j|jk(r(d}tjtj|d�y|j|jz
}|dkDr-d|d�d	�}tjtj|d�yd
}tjtj|d�y)Nz0MOUSE REVIEW: Not a duplicate: different objectsTFz1MOUSE REVIEW: Not a duplicate: not a substring ofz6MOUSE REVIEW: Treating as duplicate: mouse didn't moveg�?z#MOUSE REVIEW: Not a duplicate: was z.2fzs agoz#MOUSE REVIEW: Treating as duplicate)
rrer
rNr<rH�_isSubstringOfrbrcrh)r�priorrW�intervals    r%�_treatAsDuplicatez_ItemContext._treatAsDuplicate�s$���9�9��
�
�"�d�k�k�U�\�\�&A�D�C����u�/�/��d�;���>�>����� 1�$�:M�:M�e�:T�E�C����u�/�/��d�;���7�7�e�h�h��4�7�7�e�h�h�#6�J�C����u�/�/��d�;���:�:����+���c�>�7���~�U�K�C����u�/�/��d�;��3��
���5�+�+�S�$�7�r'c�@�tj|j�Sr))r�is_whitespace_or_emptyrrEs r%�_treatAsSingleObjectz!_ItemContext._treatAsSingleObject�s���,�,�T�Y�Y�7�7r'c���|jr|jst|j�S|j�r t|j|j�S	|jjj|j|j|j|j�\}}}|r1|jjj|j||�}t|j|j|||�S#t$rT}d|��}tjtj|d�t|j|j�cYd}~Sd}~wwxYw)z?Returns the _StringContext associated with the specified point.z/MOUSE REVIEW: Exception getting text at point: TN)rrrrtrP�textAtPointrbrcrd�	Exceptionr
rNr<�
expandEOCs)rr"r#r$�errorrWs      r%rfz_ItemContext._getStringContext�s
��������!�$�)�)�,�,��$�$�&�!�$�)�)�T�\�\�:�:�	;�!%���!7�!7�!C�!C��	�	�4�7�7�D�G�G�T�^�^�"=��F�E�3���\�\�+�+�6�6�t�y�y�%��M�F��d�i�i����v�u�c�J�J���	;�C�E�7�K�C����u�/�/��d�;�!�$�)�)�T�\�\�:�:��	;�s �AD	�		E&�A	E!�E&�!E&c���tjjtjjtjjtjj
tjjtjjtjjg�tj|j�fd��S)Nc�2��tj|��vSr))r�get_role)r5�roless �r%�<lambda>z,_ItemContext._getContainer.<locals>.<lambda>�s���8�;L�;L�Q�;O�SX�;X�r')r�Role�DIALOG�FRAME�LAYERED_PANE�MENU�PAGE_TAB�TOOL_BAR�WINDOWr�
find_ancestorr)rr}s @r%�
_getContainerz_ItemContext._getContainer�s}������"�"����!�!����(�(���������$�$����$�$����"�"�
$���%�%�d�i�i�1X�Y�Yr'c�L�|jj|j�S)r.)rrCr*s  r%rnz_ItemContext._isSubstringOf�s���|�|�)�)�%�-�-�8�8r'c��|jS)z;Returns the accessible object associated with this context.)rrEs r%�	getObjectz_ItemContext.getObjects���y�y�r'c��|jj�\}}}}|sX|sV|jj|jj|jj
|jjfS||||fS)z6Returns the bounding box associated with this context.)rr2rr5r6r7r8)rr5r6r7r8s     r%r2z_ItemContext.getBoundingBoxsf��#�l�l�9�9�;���1�e�V����:�:�<�<������t�z�z�/?�/?����AR�AR�R�R��!�U�F�"�"r'c�6�|jj�SrG)rrHrEs r%rHz_ItemContext.getStrings���|�|�%�%�'�'r'c��|jS)z.Returns the time associated with this context.)rhrEs r%�getTimez_ItemContext.getTimes���z�z�r'c���|jr|jsytj|j�|jk7ry|j�ryt	j
|j�S)NF)rr�
get_parentrtr�is_link)rros  r%�_isInlineChildz_ItemContext._isInlineChildsT���y�y��
�
�����u�z�z�*�d�i�i�7���$�$�&���"�"�5�:�:�.�.r'c�|�||k(s|j|�r(d}tjtj|d�y|jxr|j|jk7xsOtj|j|jz
dz|j|jz
dzz�dkD}|r|jj�|jrB|j|jk7r)|jj|jddd��|jjj|j�s(d}tjtj|d�y|j�r�|j|jk7�rj|j|��sX|jxs|j!�}t#j$�j'|jt"j(��|jj|j|d�	�|j*j-�t/j0|j�k(ry|jjj3|j�syt5j6|j�rK|j*j-�|jjj9|j�k(ry|j*|j*k7r|j*j;�ryy)
rJz-MOUSE REVIEW: Not presenting due to no changeTF��)�alreadyFocused�
inMouseReviewrLzAMOUSE REVIEW: Not presenting object which lacks presentable text.)�mode)�priorObjr�)rqr
rNr<r�math�sqrtrbrcr�presentationInterruptre�
presentObjectrP�hasPresentableTextr�r�rrRrSrTrrHr�get_name�isEditableTextArear�
is_table_cell�
displayedTextrX)rrorWrLr�s     r%rXz_ItemContext.present%sY���5�=�D�2�2�5�9�A�C����u�/�/��d�;���I�I�9�$�)�)�u�z�z�"9�Q��y�y�$�'�'�E�H�H�,�q�0�D�G�G�e�h�h�4F��3J�J�K�b�P�	���L�L�.�.�0��;�;�4�;�;�%�,�,�6��L�L�&�&�t�{�{�7;�6:�26�
'�
8�
�|�|�%�%�8�8����C�U�C����u�/�/��d�;���9�9����e�j�j�0��9L�9L�U�9S��z�z�9�T�%7�%7�%9�H��$�$�&�:�:��	�	�
� :� :�
;�
<��L�L�&�&�t�y�y�8�SW�&�X��|�|�%�%�'�8�+<�+<�T�Y�Y�+G�G���<�<�)�)�<�<�T�Y�Y�G���(�(����3��<�<�)�)�+�t�|�|�/E�/E�/S�/S�TX�T]�T]�/^�^���<�<�5�=�=�(�T�\�\�-A�-A�-C��r')rrNNNN)rZr[r\r]r&r,rqrtrfr�rnr�r2rHr�r�rXr^r'r%r`r`�sH��E�/�,.��48�K�,Z�9�
�
#�(�
�

/�)r'r`c�x�eZdZdZd�Zdd�Zdd�Zd�Zd�Zd�Z	d�Z
d	�Zdd�Zd�Z
d
�Zdd�Zd�Zd�Zd�Zd�Zy
)�
MouseReviewerz(Main class for the mouse-review feature.c�&�tj�jd�|_t	�|_d|_g|_g|_i|_	tjj|j�|_d|_t!�|_|j%d�|_t)j*�|_t.s(d}t1j2t0j4|d�y|jsy|j7�y)N�enableMouseReviewFT�)MOUSE REVIEW ERROR: Wnck is not available)rrR�
getSetting�_activer`�_currentMouseOver�
_workspace�_windows�_all_windows�_handlerIdsr�
EventListener�new�	_listener�_eventListener�inMouseEventr�_event_queue�get_handlers�	_handlersr�KeyBindings�	_bindings�_mouseReviewCapabler
rNr<�activate�rrWs  r%r&zMouseReviewer.__init__Ts���'�2�2�4�?�?�@S�T���!-���������
�������#�1�1�5�5�d�n�n�E���!���!�G����*�*�4�0���$�0�0�2���"�=�C����u�/�/��d�;���|�|���
�
�r'c��|rCd}tjtj|d�|j�|jS|jj�r|j�|jS)z%Returns the mouse-review keybindings.z"MOUSE REVIEW: Refreshing bindings.T)r
rNr<�_setup_bindingsr��isEmpty)r�refresh�
is_desktoprWs    r%�get_bindingszMouseReviewer.get_bindingsksd���6�C����u�/�/��d�;�� � �"��~�~���^�^�
#�
#�
%�� � �"��~�~�r'c��|r7d}tjtj|d�|j�|jS)z"Returns the mouse-review handlers.z"MOUSE REVIEW: Refreshing handlers.T)r
rNr<�_setup_handlersr�)rr�rWs   r%r�zMouseReviewer.get_handlersws:���6�C����u�/�/��d�;�� � �"��~�~�r'c���i|_tj|jtj
�|jd<d}t
jtj|d�y)z.Sets up the mouse-review input event handlers.�toggleMouseReviewHandlerzMOUSE REVIEW: Handlers set up.TN)	r�r
�InputEventHandler�toggler	�MOUSE_REVIEW_TOGGLEr
rNr<r�s  r%r�zMouseReviewer._setup_handlers�sY�����
�)�)�����,�,�
.�	
���1�2�
/��
���5�+�+�S�$�7r'c
�P�tj�|_|jjtjdtj
tj|jjd���d}tjtj|d�y)z&Sets up the mouse-review key bindings.rYr�zMOUSE REVIEW: Bindings set up.TN)rr�r��add�
KeyBinding�defaultModifierMask�NO_MODIFIER_MASKr��getr
rNr<r�s  r%r�zMouseReviewer._setup_bindings�s}��%�0�0�2���������"�"���/�/��,�,����"�"�#=�>�	
@�	A�/��
���5�+�+�S�$�7r'c�b�ts(d}tjtj|d�yt	j
�j
�}d}d}|r7tj
�jtj|�|�}|r|jj|�}t|||��|_|jj!d�t"j$j'�}|r�|j)�}|r|j+�||_|j/�|_|j0r|j3�|j5d|j6�}||j8|<|j5d|j:�}||j8|<d|_y)zActivates mouse review.r�TN)r rkr!�	mouse:abszwindow-stacking-changedzactive-workspace-changed)r�r
rNr<rrR�get_locus_of_focusr�	getScriptr�get_applicationrP�topLevelObjectr`r�r��registerr�Screen�get_default�get_windows_stacked�reverser��get_active_workspacer��_update_workspace_windows�connect�_on_stacking_changedr��_on_workspace_changedr�)rrWr r!rk�screen�stacked�is        r%r�zMouseReviewer.activate�se��#�=�C����u�/�/��d�;���&�&�(�;�;�=�������#�.�.�0�:�:�8�;S�;S�TW�;X�Z]�^�F���$�$�3�3�C�8�E�!-�#�U�6�!R������$�$�[�1����(�(�*���
�0�0�2�G�����!�$+��!�$�9�9�;�D�O�����.�.�0����8�$�:S�:S�T�A�"(�D���Q�����9�4�;U�;U�V�A�"(�D���Q����r'c��|jjd�|jj�D]\}}|j	|��i|_d|_g|_g|_|jj�d|_
y)zDeactivates mouse review.r�NF)r��
deregisterr��items�
disconnectr�r�r�r��clearr�)r�key�values   r%�
deactivatezMouseReviewer.deactivate�s��	
���&�&�{�3��*�*�0�0�2�	"�J�C�����S�!�	"���������
���������!���r'c��tsy|jsy|jj�}t	j�|jj�z
dkDr+d|dg}t
jtj|d�y|S)z-Returns the accessible object being reviewed.Ng�������?zMOUSE REVIEW: Treatingzas staleT)	r�r�r�r�rgr�r
r;r<)rr rBs   r%�getCurrentItemzMouseReviewer.getCurrentItem�sv��#���|�|���$�$�.�.�0���9�9�;��/�/�7�7�9�9�C�?�.��Z�@�F����e�.�.���=���
r'Nc��tsy|j|_tj�j	d|j�|js!|j�tj}n |j�tj}tj�j�}|�|j|�yy)z!Toggle mouse reviewing on or off.Nr�)
r�r�rrR�
setSettingr�r�MOUSE_REVIEW_DISABLEDr��MOUSE_REVIEW_ENABLEDr�getActiveScript�presentMessage)rr!�eventrWs    r%r�zMouseReviewer.toggle�s���#���<�<�'����#�#�%�0�0�1D�d�l�l�S��|�|��O�O���0�0�C��M�M�O��/�/�C��*�*�,�<�<�>�����!�!�#�&�r'c��|jD�cgc]}|j|j�r|��!c}|_ycc}wr))r��is_on_workspacer�r�)r�ws  r%r�z'MouseReviewer._update_workspace_windows�s;��$(�$5�$5�@�q��-�-�d�o�o�>��@��
��@s�$<c��|j�}|j�||_|jr|j	�yy)z3Callback for Wnck's window-stacking-changed signal.N)r�r�r�r�r�)rr�r�s   r%r�z"MouseReviewer._on_stacking_changed�s<���,�,�.������#����?�?��*�*�,�r'c�N�|j�|_|j�y)z4Callback for Wnck's active-workspace-changed signal.N)r�r�r�)rr��prev_wss   r%r�z#MouseReviewer._on_workspace_changeds ��!�5�5�7����&�&�(r'c����d}|jD]O}|j�r�|j�\}}}}||cxkr	||zks�8n�;||cxkr	||zks�Jn�M|}n|sy|j�}	|	syt	j
|	j
��}
|
sy|z
�|z
�tj|
��fd��D�cgc]}|��}}t|�dk(r|d��fS|j�}
|D�cgc]}tj|�|
k(s�|��}}t|�dk(r|d��fS|D�cgc]}t	j|�s�|��}}t|�dk(r|d��fSycc}wcc}wcc}w)zVReturns the accessible window and window based coordinates for the screen coordinates.N)NrMrMc�2��tj|���Sr))r�object_contains_point)r5�	relativeX�	relativeYs ��r%r~z;MouseReviewer._accessible_window_at_point.<locals>.<lambda>*s���;�<�<�Q�	�9�U�r'rr)r��is_minimized�get_client_window_geometryr�r�get_application_with_pid�get_pidr�
iter_children�lenr��	is_active)r�pX�pY�windowr�r5r6r7r8�	windowApp�app�o�
candidates�name�matchesr�r�s               @@r%�_accessible_window_at_pointz)MouseReviewer._accessible_window_at_points���������	�A��~�~���"#�">�">�"@��A�q�%���B�#�!�e�)�#��R�(=�1�v�:�(=����	����*�*�,�	����2�2�9�3D�3D�3F�G������F�	���F�	�!)�!7�!7��U�"W�X�A�a�X�
�X��z�?�a���a�=�)�Y�6�6���� ��(�I��H�,=�,=�a�,@�D�,H�1�I��I��w�<�1���1�:�y�)�3�3�%�B���)>�)>�q�)A�1�B��B��w�<�1���1�:�y�)�3�3���X��J��Cs�	E0�:E5�E5�8E:�E:c��|j|j}}|j||�\}}}d|�d|�d�|g}tjtj
|d�|syt
j�jtj|��}|sytj�j�}	tj|	�rd}
n<tj|	�r|	}
n$tj |	tj�}
d}|
rIt#j$|
||�}d|
d|�d|�d�|g}tjtj
|d�|�It#j$|||�}d|d|�d|�d�|g}tjtj
|d�t
j�jtj|�|�}|
rh|rftj |tj�sBt#j&||
�r,d|d	|
g}tjtj
|d�y|j(j+|�}|re|j(j-�rK|j(j/�}
|
|k7r,d|d
|
g}tjtj
|d�yd}|j0j3�\}}}}||cxkr||zkr8nn5|j0j5�rt6j8j:}n�||j0j=�k(rt6j8j>}netj@|�rt6j8j>}n5|j(jC|�rt6j8j>}tE|jF�r(d}tjHtj
|d�ytK||||||�}|jM|j0�r||_yy)zCallback for mouse:abs events.zMOUSE REVIEW: Window at (z, z) isTNzMOUSE REVIEW: Object inzat (z
MOUSE REVIEW:zbelieved to be underzis not in active documentz MOUSE REVIEW: Mouse moved again.)'�detail1�detail2rr
r;r<rrRr�rr�rr��is_deadr�is_menur�r�get_descendant_at_point�objects_overlaprP�getTopLevelDocumentForObject�inDocumentContent�activeDocumentr�r2rHr�TextBoundaryType�
WORD_STARTr��
LINE_START�
is_selectable�isMultiParagraphObjectrr�rNr`rX)rr�rrr�windowX�windowYrBr!�focus�menur �objDocument�documentrjr5r6r7r8rWr�s                     r%�_on_mouse_movedzMouseReviewer._on_mouse_moved9s�������
�
�B��#'�#C�#C�B��#K� ����-�b�T��B�4�t�<�f�E��
���%�*�*�F�D�9����*�*�,�6�6�x�7O�7O�PV�7W�X�����(�(�*�=�=�?�����E�"��D�
�
 �
 ��
'��D��)�)�%��1D�1D�E�D�����5�5�d�G�W�M�C�/���g�Y�b��	�QU�7V�X[�\�F����e�.�.���=��;��5�5�f�g�w�O�C�/��4��y��7�)�SW�9X�Z]�^�F����e�.�.���=��*�*�,�6�6�x�7O�7O�PV�7W�Y\�]���C�� 6� 6�s�K�<O�<O� P��*�*�3��5�)�3�0F��M���!�!�%�"2�"2�F�D�A���&�&�C�C�C�H���6�+�+�=�=�?��'�'�6�6�8�H��;�&�)�3�0K�X�V���!�!�%�"2�"2�F�D�A����"�4�4�C�C�E���1�e�V���%�1�v�:�%�$�*@�*@�*J�*J�*L��-�-�8�8�H�
�D�*�*�4�4�6�
6��-�-�8�8�H�
�
&�
&�s�
+��-�-�8�8�H�
�
�
�
4�
4�S�
9��-�-�8�8�H��t� � �!�4�C����u�/�/��d�;���7�G�S�(�F�F�K���;�;�t�-�-�.�%(�D�"�/r'c���|jsy|jj�}t|j�rytj�}d|jdg}tjt
j|d�d|_|j|�d|_dtj�|z
d�d�}|d|j�d	�z
}tjt
j|d�y)
Nz
vvvvv PROCESS OBJECT EVENT�vvvvvFTzTOTAL PROCESSING TIME: z.4fr0z^^^^^ PROCESS OBJECT EVENT z ^^^^^
)r��popleftrrg�typer
r;r<r�r%rN)rr��	startTimerBrWs     r%�_process_eventzMouseReviewer._process_event}s���� � ���!�!�)�)�+���t� � �!���I�I�K�	�0�%�*�*�g�F��
���%�*�*�F�E�:� ������U�#�!���'��	�	��i�(?��'D�B�G���,�U�Z�Z�L��A�A��
���5�+�+�S�%�8r'c��|jjd�r<|jj|�t	j
d|j�yy)z(Generic listener for events of interest.r��2N)r)�
startswithr��appendr�timeout_addr+)rr�s  r%r�zMouseReviewer._listener�sE���:�:� � ��-����$�$�U�+����R��!4�!4�5�.r')FT)F)NNr))rZr[r\r]r&r�r�r�r�r�r�r�r�r�r�r�rr%r+r�r^r'r%r�r�QsZ��2��.
��8�
8�'�R��$'�(@�-�)�+�ZB)�H9�(6r'r�c��tSr))�	_reviewerr^r'r%�getReviewerr3�s���r')(r]�__id__�__version__�__date__�
__copyright__�__license__r�rg�collectionsr�gi�require_version�
gi.repositoryrrrr�rwrYr	r
rrr
rrr�ax_componentr�	ax_objectr�ax_textr�ax_utilitiesrrr`r�r2r3r^r'r%�<module>rAs���*�������2�
������	�����7�E�"��� ��B���v�u�%�"�����������%���%�a�a�Hn�n�bE6�E6�P

�O�	���_� ��� �s�C�C�C

Zerion Mini Shell 1.0