title: Draw Before Scatter Without Problematic Offset Kivy
body: <p>New to Kivy, not new to stack exchange or python.</p>
  <p>So I have a scatter widget which I want to draw a circle on, then render text on top of. When I render the canvas after, the offset is good but the order is wrong, when I render the the canvas before, the order is good but the offset is wrong. How do I fix this?</p>
  <h3>main.py</h3>
  <pre><code>from kivy.app import App
  
  from kivy.uix.button import Button
  from kivy.uix.scatter import Scatter
  from kivy.uix.label import Label
  from kivy.uix.floatlayout import FloatLayout
  from kivy.uix.textinput import TextInput
  from kivy.uix.boxlayout import BoxLayout
  
  from kivy.properties import ListProperty
  
  from kivy.graphics.vertex_instructions import Rectangle, Ellipse, Line
  from kivy.graphics.context_instructions import Color
  
  import random
  
  class Node(Scatter):
      pass
  
  class main(App):
      def build(self):
          return Node()
  
  if __name__ == '__main__':
      main().run()
  </code></pre>
  <h3>main.kv</h3>
  <pre><code>&lt;Node&gt;:
      size_hint: None, None
      size: 200,200
  
      canvas.after: #offset good
      #canvas.before: #order good
          Color:
              rgba: 0,0.7,0,0.8
          Ellipse:
              pos: self.pos
              size: self.size
          #---Debug---
          Color:
              rgba: 0,1,0,0.1
          Rectangle:
              pos: self.pos
              size: self.size
  
      Label:
          id: text
          text: 'foo'
          font_size: self.parent.size[0]/3
          color: 1,1,1,1
          size: self.parent.size
          #Debug
          canvas:
              Color:
                  rgba: 0,1,0,0.1
              Rectangle:
                  pos: self.pos
                  size: self.size
  </code></pre>