Fix scroll area shift with scale > 1

Fixes #6775
This commit is contained in:
Scott Shawcroft 2022-08-19 11:20:47 -07:00
parent 43e18f171c
commit 802cff2286
No known key found for this signature in database
GPG Key ID: 0DFD512649C052DA

View File

@ -67,7 +67,7 @@ void supervisor_start_terminal(uint16_t width_px, uint16_t height_px) {
bool reset_tiles = false; bool reset_tiles = false;
uint16_t width_in_tiles = width_px / scroll_area->tile_width; uint16_t width_in_tiles = width_px / scroll_area->tile_width;
// determine scale based on width // determine scale based on width
if (width_in_tiles < 80) { if (width_in_tiles <= 80) {
scale = 1; scale = 1;
} }
@ -133,7 +133,7 @@ void supervisor_start_terminal(uint16_t width_px, uint16_t height_px) {
#else #else
scroll_area->y = title_bar->tile_height; scroll_area->y = title_bar->tile_height;
#endif #endif
int16_t extra_height = (scroll_area->pixel_height + scroll_area->y) - height_px; int16_t extra_height = (scroll_area->pixel_height + scroll_area->y) - (height_px / scale);
// Subtract extra height so that the bottom line fully shows. The top line will be under the // Subtract extra height so that the bottom line fully shows. The top line will be under the
// title bar and Blinka logo. // title bar and Blinka logo.
scroll_area->y -= extra_height; scroll_area->y -= extra_height;