]> Repositories - hackapet/Adafruit_Blinka_Displayio.git/commitdiff
Add an internal _set_scale method, so that the scale can still be set from
authorJames Carr <lesamouraipourpre@gmail.com>
Thu, 1 Jul 2021 19:39:42 +0000 (20:39 +0100)
committerJames Carr <lesamouraipourpre@gmail.com>
Thu, 1 Jul 2021 19:39:42 +0000 (20:39 +0100)
the constructor even when the scale property is over-ridden in a subclass.

Closes #64

displayio/group.py

index 3fd6809102057d0f5e5c6a60aff80a86063d5a28..e6deba8b53fc4dad216383d2e859571af21541e3 100644 (file)
@@ -46,10 +46,9 @@ class Group:
         self._hidden_group = False
         self._layers = []
         self._supported_types = (TileGrid, Group)
-        self._absolute_transform = None
         self.in_group = False
         self._absolute_transform = Transform(0, 0, 1, 1, 1, False, False, False)
-        self.scale = scale  # Set the scale via the setter
+        self._set_scale(scale)  # Set the scale via the setter
 
     def update_transform(self, parent_transform):
         """Update the parent transform and child transforms"""
@@ -164,6 +163,11 @@ class Group:
 
     @scale.setter
     def scale(self, value):
+        self._set_scale(value)
+
+    def _set_scale(self, value):
+        # This is method allows the scale to be set by this class even when
+        # the scale property is over-ridden by a subclass.
         if not isinstance(value, int) or value < 1:
             raise ValueError("Scale must be >= 1")
         if self._scale != value: