From ec2862546a3613190e5dadf939efb6e4deff41fe Mon Sep 17 00:00:00 2001 From: falkTX Date: Sun, 30 Oct 2022 21:26:28 +0000 Subject: [PATCH] Ensure non-first top-level-widgets have a valid size on start Signed-off-by: falkTX --- dgl/src/TopLevelWidgetPrivateData.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/dgl/src/TopLevelWidgetPrivateData.cpp b/dgl/src/TopLevelWidgetPrivateData.cpp index fc862250..02c2a0b8 100644 --- a/dgl/src/TopLevelWidgetPrivateData.cpp +++ b/dgl/src/TopLevelWidgetPrivateData.cpp @@ -28,6 +28,17 @@ TopLevelWidget::PrivateData::PrivateData(TopLevelWidget* const s, Window& w) selfw(s), window(w) { + /* if window already has a top-level-widget, make the new one match the first one in size + * this is needed because window creation and resize is a synchronous operation in some systems. + * as such, there's a chance the non-1st top-level-widgets would never get a valid size. + */ + if (!window.pData->topLevelWidgets.empty()) + { + TopLevelWidget* const first = window.pData->topLevelWidgets.front(); + + selfw->pData->size = first->getSize(); + } + window.pData->topLevelWidgets.push_back(self); }