diff options
Diffstat (limited to 'Source/CursesDialog/cmCursesMainForm.cxx')
-rw-r--r-- | Source/CursesDialog/cmCursesMainForm.cxx | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/Source/CursesDialog/cmCursesMainForm.cxx b/Source/CursesDialog/cmCursesMainForm.cxx index cd0a4bd..3e254e0 100644 --- a/Source/CursesDialog/cmCursesMainForm.cxx +++ b/Source/CursesDialog/cmCursesMainForm.cxx @@ -93,13 +93,13 @@ void cmCursesMainForm::InitializeUI() int entrywidth = this->InitialWidth - 35; - if (count == 0) { - // If cache is empty, display a label saying so and a - // dummy entry widget (does not respond to input) - cmCursesCacheEntryComposite comp("EMPTY CACHE", 30, 30); - comp.Entry = cm::make_unique<cmCursesDummyWidget>(1, 1, 1, 1); - newEntries.emplace_back(std::move(comp)); - } else { + // Add a label to display when cache is empty + // dummy entry widget (does not respond to input) + cmCursesCacheEntryComposite comp("EMPTY CACHE", 30, 30); + comp.Entry = cm::make_unique<cmCursesDummyWidget>(1, 1, 1, 1); + newEntries.emplace_back(std::move(comp)); + + if (count > 0) { // Create the composites. // First add entries which are new @@ -190,7 +190,8 @@ void cmCursesMainForm::RePost() this->Fields.push_back(entry.Entry->Field); } // if no cache entries there should still be one dummy field - if (this->Fields.empty()) { + this->IsEmpty = this->Fields.empty(); + if (this->IsEmpty) { const auto& front = this->Entries.front(); this->Fields.push_back(front.Label->Field); this->Fields.push_back(front.IsNewLabel->Field); @@ -869,7 +870,7 @@ void cmCursesMainForm::HandleInput() } } // delete cache entry - else if (key == 'd' && this->NumberOfVisibleEntries) { + else if (key == 'd' && this->NumberOfVisibleEntries && !this->IsEmpty) { this->OkToGenerate = false; FIELD* cur = current_field(this->Form); size_t findex = field_index(cur); |