mirror of https://github.com/OpenTTD/OpenTTD
(svn r17752) -Fix [FS#3231]: OSK could reset town name to an already used town name for the 'Generate Town' window
parent
66721ffd36
commit
4ab569544b
|
@ -547,3 +547,21 @@ void ShowOnScreenKeyboard(QueryStringBaseWindow *parent, int button, int cancel,
|
||||||
GetKeyboardLayout();
|
GetKeyboardLayout();
|
||||||
new OskWindow(&_osk_desc, parent, button, cancel, ok);
|
new OskWindow(&_osk_desc, parent, button, cancel, ok);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates the original text of the OSK so when the 'parent' changes the
|
||||||
|
* original and you press on cancel you won't get the 'old' original text
|
||||||
|
* but the updated one.
|
||||||
|
* @param parent window that just updated it's orignal text
|
||||||
|
* @param button widget number of parent's textbox to update
|
||||||
|
*/
|
||||||
|
void UpdateOSKOriginalText(const QueryStringBaseWindow *parent, int button)
|
||||||
|
{
|
||||||
|
OskWindow *osk = dynamic_cast<OskWindow *>(FindWindowById(WC_OSK, 0));
|
||||||
|
if (osk == NULL || osk->qs != parent || osk->text_btn != button) return;
|
||||||
|
|
||||||
|
free(osk->orig_str_buf);
|
||||||
|
osk->orig_str_buf = strdup(osk->qs->text.buf);
|
||||||
|
|
||||||
|
osk->SetDirty();
|
||||||
|
}
|
||||||
|
|
|
@ -86,5 +86,6 @@ struct QueryStringBaseWindow : public Window, public QueryString {
|
||||||
};
|
};
|
||||||
|
|
||||||
void ShowOnScreenKeyboard(QueryStringBaseWindow *parent, int button, int cancel, int ok);
|
void ShowOnScreenKeyboard(QueryStringBaseWindow *parent, int button, int cancel, int ok);
|
||||||
|
void UpdateOSKOriginalText(const QueryStringBaseWindow *parent, int button);
|
||||||
|
|
||||||
#endif /* QUERYSTRING_GUI_H */
|
#endif /* QUERYSTRING_GUI_H */
|
||||||
|
|
|
@ -978,6 +978,7 @@ public:
|
||||||
GetTownName(this->edit_str_buf, &this->params, this->townnameparts, &this->edit_str_buf[this->edit_str_size - 1]);
|
GetTownName(this->edit_str_buf, &this->params, this->townnameparts, &this->edit_str_buf[this->edit_str_size - 1]);
|
||||||
}
|
}
|
||||||
UpdateTextBufferSize(&this->text);
|
UpdateTextBufferSize(&this->text);
|
||||||
|
UpdateOSKOriginalText(this, TSEW_TOWNNAME_EDITBOX);
|
||||||
|
|
||||||
this->SetFocusedWidget(TSEW_TOWNNAME_EDITBOX);
|
this->SetFocusedWidget(TSEW_TOWNNAME_EDITBOX);
|
||||||
this->SetWidgetDirty(TSEW_TOWNNAME_EDITBOX);
|
this->SetWidgetDirty(TSEW_TOWNNAME_EDITBOX);
|
||||||
|
|
Loading…
Reference in New Issue