mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-07-26 14:58:12 +00:00
fix(ui): home page order and visibility bugs
- home_pages_mask XOR toggle initialises to HP_ALL before flipping bit, preventing accidental hiding of all other pages when mask starts at 0 - buildVisibleOrder appends any visible page missing from custom page_order, so pages absent from migrated/corrupted prefs remain navigable Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -600,6 +600,7 @@ public:
|
||||
return true;
|
||||
}
|
||||
if (enter && homePageToggleable(_selected)) {
|
||||
if (!p->home_pages_mask) p->home_pages_mask = HP_ALL;
|
||||
p->home_pages_mask ^= homePageBit(_selected);
|
||||
_dirty = true;
|
||||
return true;
|
||||
|
||||
@@ -232,6 +232,13 @@ class HomeScreen : public UIScreen {
|
||||
int pg = bitToPage(v - 1);
|
||||
if (pg >= 0 && pg < (int)Count && isPageVisible(pg)) out[n++] = pg;
|
||||
}
|
||||
// Append any visible page missing from page_order (handles corrupted/migrated prefs)
|
||||
for (int pg = 0; pg < (int)Count; pg++) {
|
||||
if (!isPageVisible(pg)) continue;
|
||||
bool found = false;
|
||||
for (int i = 0; i < n; i++) if (out[i] == pg) { found = true; break; }
|
||||
if (!found) out[n++] = pg;
|
||||
}
|
||||
} else {
|
||||
for (int pg = 0; pg < (int)Count; pg++)
|
||||
if (isPageVisible(pg)) out[n++] = pg;
|
||||
|
||||
Reference in New Issue
Block a user