X-Git-Url: https://git.ayoreis.com/hackapet/Adafruit_Blinka_Displayio.git/blobdiff_plain/0d243252f0fb3a3e200df404884e3cc7d872ee13..156e7fcd0eef94819ee29417e8a68894795a03f5:/displayio/_group.py diff --git a/displayio/_group.py b/displayio/_group.py index a23ae4e..ed90f8e 100644 --- a/displayio/_group.py +++ b/displayio/_group.py @@ -19,6 +19,7 @@ displayio for Blinka from __future__ import annotations from typing import Union, Callable +import circuitpython_typing from ._structs import TransformStruct from ._tilegrid import TileGrid from ._colorspace import Colorspace @@ -52,6 +53,7 @@ class Group: self._layers = [] self._supported_types = (TileGrid, Group) self._in_group = False + self._item_removed = False self._absolute_transform = TransformStruct(0, 0, 1, 1, 1, False, False, False) self._set_scale(scale) # Set the scale via the setter @@ -144,7 +146,11 @@ class Group: del self._layers[index] def _fill_area( - self, colorspace: Colorspace, area: Area, mask: int, buffer: bytearray + self, + colorspace: Colorspace, + area: Area, + mask: circuitpython_typing.WriteableBuffer, + buffer: circuitpython_typing.WriteableBuffer, ) -> bool: if self._hidden_group: return False @@ -166,6 +172,12 @@ class Group: if isinstance(layer, (Group, TileGrid)): layer._finish_refresh() # pylint: disable=protected-access + def _get_refresh_areas(self, areas: list[Area]) -> None: + for layer in self._layers: + if isinstance(layer, (Group, TileGrid)): + if not layer.hidden: + layer._get_refresh_areas(areas) # pylint: disable=protected-access + @property def hidden(self) -> bool: """True when the Group and all of it's layers are not visible. When False, the