X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Ffrontends%2FWorkAreaManager.cpp;h=f938db4eb9d80306f6da263e11be708325b934d7;hb=1f10969bb5c5f36017bf5ba8671381b09945cf57;hp=e846cc1aff2835254c0af0c5d870970e95209e5a;hpb=5249b74e5bd3fdaa1c6fc26c1ea67de299b9b230;p=lyx.git diff --git a/src/frontends/WorkAreaManager.cpp b/src/frontends/WorkAreaManager.cpp index e846cc1aff..f938db4eb9 100644 --- a/src/frontends/WorkAreaManager.cpp +++ b/src/frontends/WorkAreaManager.cpp @@ -11,9 +11,10 @@ #include +#include "WorkAreaManager.h" + #include "WorkArea.h" -#include "WorkAreaManager.h" namespace lyx { namespace frontend { @@ -23,16 +24,36 @@ void WorkAreaManager::add(WorkArea * wa) work_areas_.push_back(wa); } -void WorkAreaManager::redrawAll() + +void WorkAreaManager::remove(WorkArea * wa) { - for (size_t i = 0; i != work_areas_.size(); ++i) - work_areas_[i]->redraw(); + work_areas_.remove(wa); } + +void WorkAreaManager::redrawAll(bool update_metrics) +{ + iterator it = work_areas_.begin(); + iterator const en = work_areas_.end(); + for (; it != en; ++it) + (*it)->redraw(update_metrics); +} + + void WorkAreaManager::closeAll() { - for (size_t i = 0; i != work_areas_.size(); ++i) - work_areas_[i]->close(); + while (!work_areas_.empty()) + // WorkArea is de-registering itself. + (*work_areas_.begin())->close(); +} + + +void WorkAreaManager::updateTitles() +{ + iterator it = work_areas_.begin(); + iterator const en = work_areas_.end(); + for (; it != en; ++it) + (*it)->updateWindowTitle(); } } // namespace frontend