o
    :a                     @   sn   d dl mZ ddlmZmZ ddlmZmZ G dd dejZG dd dej	ej
ZejG d	d
 d
eZdS )    )nullcontext   )backend_cairobackend_gtk4)Gtk_BackendGTK4c                   @   s   e Zd Zdd ZdS )RendererGTK4Cairoc                 C   s   t || j_d S N)r   Z_to_contextZgcctx)selfr
    r   G/usr/lib/python3/dist-packages/matplotlib/backends/backend_gtk4cairo.pyset_context   s   zRendererGTK4Cairo.set_contextN)__name__
__module____qualname__r   r   r   r   r   r      s    r   c                       s(   e Zd ZdZ fddZdd Z  ZS )FigureCanvasGTK4CairoTc                    s   t  | t| jj| _d S r	   )super__init__r   figuredpi	_renderer)r   r   	__class__r   r   r      s   zFigureCanvasGTK4Cairo.__init__c              	   C   s   | j r| j  nt J | j| | j}|d| d|  |  }t	| 
 ||j|j|j|j | j|j| |j|  | jj| j_| j| j W d    d S 1 sXw   Y  d S )Nr   )ZtoolbarZ_wait_cursor_for_draw_cmr   r   r   Zdevice_pixel_ratioscaleZget_allocationr   Zrender_backgroundZget_style_contextxywidthZheightZset_width_heightr   r   Zdraw)r   Zwidgetr
   r   Z
allocationr   r   r   on_draw_event   s$   "z#FigureCanvasGTK4Cairo.on_draw_event)r   r   r   Z_context_is_scaledr   r   __classcell__r   r   r   r   r      s    r   c                   @   s   e Zd ZeZdS )_BackendGTK4CairoN)r   r   r   r   ZFigureCanvasr   r   r   r   r    &   s    r    N)
contextlibr    r   r   r   r   ZRendererCairor   ZFigureCanvasGTK4ZFigureCanvasCairor   Zexportr    r   r   r   r   <module>   s    