diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index 42cc8e4d62..8c5f34c885 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -1194,25 +1194,27 @@ struct QueryWindow : public Window { * overridden pretty often. We will copy these back for drawing */ this->precomposed = false; CopyOutDParam(this->params, 10); - this->caption = caption; this->message = message; this->proc = callback; this->parent = parent; - this->InitNested(WN_CONFIRM_POPUP_QUERY); + this->CreateNestedTree(); + this->GetWidget(WID_Q_CAPTION)->SetDataTip(caption, STR_NULL); + this->FinishInitNested(WN_CONFIRM_POPUP_QUERY); } QueryWindow(WindowDesc *desc, std::string caption, std::string message, Window *parent, QueryCallbackProc *callback) : Window(desc) { this->precomposed = true; - this->caption = SPECSTR_TEMP_START; this->message = STR_EMPTY; this->caption_str = std::move(caption); this->message_str = std::move(message); this->proc = callback; this->parent = parent; - this->InitNested(WN_CONFIRM_POPUP_QUERY); + this->CreateNestedTree(); + this->GetWidget(WID_Q_CAPTION)->SetDataTip(STR_JUST_RAW_STRING, STR_NULL); + this->FinishInitNested(WN_CONFIRM_POPUP_QUERY); } void Close([[maybe_unused]] int data = 0) override @@ -1234,11 +1236,10 @@ struct QueryWindow : public Window { switch (widget) { case WID_Q_CAPTION: if (this->precomposed) { - _temp_special_strings[0] = this->caption_str; + SetDParamStr(0, this->caption_str.c_str()); } else { - CopyInDParam(this->params, 1); + CopyInDParam(this->params); } - SetDParam(0, this->caption); break; case WID_Q_TEXT: @@ -1317,7 +1318,7 @@ struct QueryWindow : public Window { static const NWidgetPart _nested_query_widgets[] = { NWidget(NWID_HORIZONTAL), NWidget(WWT_CLOSEBOX, COLOUR_RED), - NWidget(WWT_CAPTION, COLOUR_RED, WID_Q_CAPTION), SetDataTip(STR_JUST_STRING, STR_NULL), + NWidget(WWT_CAPTION, COLOUR_RED, WID_Q_CAPTION), // The caption's string is set in the constructor EndContainer(), NWidget(WWT_PANEL, COLOUR_RED), NWidget(NWID_VERTICAL), SetPIP(0, WidgetDimensions::unscaled.vsep_wide, 0), SetPadding(WidgetDimensions::unscaled.modalpopup),