From 473bdf48f61998ee9c51aa16c159bbc4df1d15b6 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Wed, 13 Feb 2019 00:35:14 -0800 Subject: A safe mode fix and displayio fixes * Fixes safe mode on the SAMD51. The "preserved" value was being clobbered by the bootloader. * Fixes auto-reload loop when in safe mode. * Fixes reading Group children with []. * Check that a TileGrid actually moves before queueing a refresh. --- shared-module/displayio/Group.c | 2 +- shared-module/displayio/TileGrid.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'shared-module') diff --git a/shared-module/displayio/Group.c b/shared-module/displayio/Group.c index adaad1505..b48057d1b 100644 --- a/shared-module/displayio/Group.c +++ b/shared-module/displayio/Group.c @@ -98,7 +98,7 @@ size_t common_hal_displayio_group_get_len(displayio_group_t* self) { } mp_obj_t common_hal_displayio_group_get(displayio_group_t* self, size_t index) { - return self->children[index]; + return MP_OBJ_FROM_PTR(self->children[index]); } void common_hal_displayio_group_set(displayio_group_t* self, size_t index, mp_obj_t layer) { diff --git a/shared-module/displayio/TileGrid.c b/shared-module/displayio/TileGrid.c index e4f40a5f7..c2aa9b144 100644 --- a/shared-module/displayio/TileGrid.c +++ b/shared-module/displayio/TileGrid.c @@ -72,9 +72,9 @@ void common_hal_displayio_tilegrid_get_position(displayio_tilegrid_t *self, int1 } void common_hal_displayio_tilegrid_set_position(displayio_tilegrid_t *self, int16_t x, int16_t y) { + self->needs_refresh = self->x != x || self->y != y; self->x = x; self->y = y; - self->needs_refresh = true; } mp_obj_t common_hal_displayio_tilegrid_get_pixel_shader(displayio_tilegrid_t *self) { -- cgit v1.2.3