|
from contextlib import nullcontext |
|
|
|
from .backend_cairo import FigureCanvasCairo |
|
from .backend_gtk3 import Gtk, FigureCanvasGTK3, _BackendGTK3 |
|
|
|
|
|
class FigureCanvasGTK3Cairo(FigureCanvasCairo, FigureCanvasGTK3): |
|
def on_draw_event(self, widget, ctx): |
|
with (self.toolbar._wait_cursor_for_draw_cm() if self.toolbar |
|
else nullcontext()): |
|
self._renderer.set_context(ctx) |
|
scale = self.device_pixel_ratio |
|
|
|
ctx.scale(1 / scale, 1 / scale) |
|
allocation = self.get_allocation() |
|
Gtk.render_background( |
|
self.get_style_context(), ctx, |
|
allocation.x, allocation.y, |
|
allocation.width, allocation.height) |
|
self._renderer.dpi = self.figure.dpi |
|
self.figure.draw(self._renderer) |
|
|
|
|
|
@_BackendGTK3.export |
|
class _BackendGTK3Cairo(_BackendGTK3): |
|
FigureCanvas = FigureCanvasGTK3Cairo |
|
|