
    Egm                     t    d dl Z  e j                  dd       d dlmZmZmZmZ  G d dej                        Zy)    NCScreensaverz1.0)GLibGioGObjectr   c                   n    e Zd ZdZdZdej                  j                  ddfiZd Z	d Z
d Zd	 Zd
 Zd Zy)MuffinClientz!org.cinnamon.Muffin.DisplayConfigz"/org/cinnamon/Muffin/DisplayConfigmuffin-config-changedN c                    t         j                  j                  |        d | _        d| _        	 t
        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                  z  | j                  | j                  d       | _        | j                  j!                  d| j"                         | j                  j!                  d| j$                         | j'                          y # t(        j*                  $ r}t-        d| d       Y d }~y d }~ww xY w)NFzmonitors-changedznotify::g-name-ownerz5Could not connect to Muffin's DisplayConfig service: Tflush)r   Object__init__proxyusing_fractional_scalingr   MuffinDisplayConfigProxynew_for_bus_syncr   BusTypeSESSIONDBusProxyFlagsDO_NOT_LOAD_PROPERTIESDO_NOT_AUTO_STARTMUFFIN_SERVICEMUFFIN_PATHconnecton_monitors_changedon_name_owner_changedupdater   Errorprint)selfes     9/usr/share/cinnamon-screensaver/dbusdepot/muffinClient.pyr   zMuffinClient.__init__   s    %
(-%	[%>>OOPSP[P[PcPcPSPbPbPyPyRURdRdRvRvQwPTPcPcPTP`P`PTVDJ JJ143K3KLJJ5t7Q7QRKKMzz 	[I!MUYZZ	[s   C#D E &D;;E c                 $    | j                          y N)r   )r!   r   s     r#   r   z MuffinClient.on_monitors_changed'   s        c                 F    |j                         | j                          y y r%   )get_name_ownerr   )r!   r   pspecs      r#   r   z"MuffinClient.on_name_owner_changed*   s    !-KKM .r&   c                 H    | j                         r| j                  d       y y )Nr	   )read_current_stateemitr!   s    r#   r   zMuffinClient.update.   s     ""$II-. %r&   c                    | j                   }| j                  j                         t        d       y	 | j                  j	                  d       d   }d}d}|j                         D ])  }|d   }t        |      |k7  rd} n|dkD  r	||k7  rd} n|}+ || _         t        d	| j                    d       | j                   |k7  S # t
        j                  $ r0}t        d| d       d| _         | j                   |k7  cY d }~S d }~ww xY w)
Nz6Muffin not running, skipping fractional scaling check.F   z*Could not read current state from Muffin: Tr   r   zFractional scaling active: )	r   r   r(   r    call_get_current_state_syncr   r   unpackint)	r!   argsold_scalinglogical_monitorsr"   
fractionalprevious_scalemonitorscales	            r#   r+   zMuffinClient.read_current_state2   s%   33::$$&.JK	@#zzEEdKAN 
'..0 	#GAJE 5zU"!
 !e~&=!
"N	# )3%+D,I,I+JKSWX,,;;3 zz 	@>qcB$O,1D)00K??	@s   C D%D :D Dc                     | j                   S r%   )r   r-   s    r#   get_using_fractional_scalingz)MuffinClient.get_using_fractional_scalingV   s    ,,,r&   )__name__
__module____qualname__r   r   r   SignalFlagsRUN_LAST__gsignals__r   r   r   r   r+   r<   r
   r&   r#   r   r      sM    8N9K 	 '"5"5">">b!IL[(/"<H-r&   r   )	girequire_versiongi.repositoryr   r   r   r   r   r   r
   r&   r#   <module>rF      s4    
   >5 ) : :L-7>> L-r&   