Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/windowing/StarPaneManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/windowing/StarPaneManager.cpp')
-rw-r--r--source/windowing/StarPaneManager.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/source/windowing/StarPaneManager.cpp b/source/windowing/StarPaneManager.cpp
index f34c786..9dd7737 100644
--- a/source/windowing/StarPaneManager.cpp
+++ b/source/windowing/StarPaneManager.cpp
@@ -128,6 +128,23 @@ void PaneManager::setBackgroundWidget(WidgetPtr bg) {
m_backgroundWidget = bg;
}
+void PaneManager::dismissWhere(function<bool(PanePtr const&)> func) {
+ if (!func)
+ return;
+
+ for (auto& layerPair : m_displayedPanes) {
+ eraseWhere(layerPair.second, [&](auto& panePair) {
+ if (func(panePair.first)) {
+ panePair.first->dismissed();
+ if (panePair.second)
+ panePair.second(panePair.first);
+ return true;
+ }
+ return false;
+ });
+ }
+}
+
PanePtr PaneManager::keyboardCapturedPane() const {
for (auto const& layerPair : m_displayedPanes) {
for (auto const& panePair : layerPair.second) {