code: def on_draw_event(self, widget, ctx):
      scale = self.device_pixel_ratio
      allocation = self.get_allocation()
      w = allocation.width * scale
      h = allocation.height * scale
  
      if not len(self._bbox_queue):
          Gtk.render_background(
              self.get_style_context(),
              ctx,
              allocation.x,
              allocation.y,
              allocation.width,
              allocation.height,
          )
          bbox_queue = [transforms.Bbox([[0, 0], [w, h]])]
      else:
          bbox_queue = self._bbox_queue
  
      for bbox in bbox_queue:
          x = int(bbox.x0)
          y = h - int(bbox.y1)
          width = int(bbox.x1) - int(bbox.x0)
          height = int(bbox.y1) - int(bbox.y0)
  
          buf = cbook._unmultiplied_rgba8888_to_premultiplied_argb32(
              np.asarray(self.copy_from_bbox(bbox))
          )
          image = cairo.ImageSurface.create_for_data(
              buf.ravel().data, cairo.FORMAT_ARGB32, width, height
          )
          image.set_device_scale(scale, scale)
          ctx.set_source_surface(image, x / scale, y / scale)
          ctx.paint()
  
      if len(self._bbox_queue):
          self._bbox_queue = []
  
      return False
  
file_path: matplotlib/lib/matplotlib/backends/backend_gtk3agg.py
imports: import numpy
  from ..None import cbook, transforms
  from .None import backend_agg, backend_gtk3
  from .backend_gtk3 import Gtk, _BackendGTK3
  import cairo
label_desc: Use image node_id 2 for calling the FigureCanvasGTK3Agg obj's underlying member method code with example usage: obj.on_draw_event(widget, ctx) and returns: False