GUI: Prevent duplicate page overlays

If a page is requested for overlay, ensure it doesn't already exist in
the stack of existing overlays. If it does, erase the existing page
and push_back the new one.

Change-Id: I9feeea06cf7aad2e08a8c3bc567aaa761db2c3bc
This commit is contained in:
Matt Mower
2015-04-09 16:04:12 -05:00
committed by Dees Troy
parent cf94db1d5b
commit d411f8da8e
+11
View File
@@ -936,6 +936,17 @@ int PageSet::SetOverlay(Page* page)
LOGERR("Too many overlays requested, max is 10.\n");
return -1;
}
std::vector<Page*>::iterator iter;
for (iter = mOverlays.begin(); iter != mOverlays.end(); iter++) {
if ((*iter)->GetName() == page->GetName()) {
mOverlays.erase(iter);
// SetOverlay() is (and should stay) the only function which
// adds to mOverlays. Then, each page can appear at most once.
break;
}
}
page->SetPageFocus(1);
page->NotifyVarChange("", "");