mirror of https://github.com/OpenTTD/OpenTTD
(svn r27085) -Fix: Always return a valid window to the world generation gui code.
parent
edea2ce96d
commit
78896895cf
|
@ -837,7 +837,8 @@ static void _ShowGenerateLandscape(GenenerateLandscapeWindowMode mode)
|
||||||
if (!GetHeightmapDimensions(_file_to_saveload.name, &x, &y)) return;
|
if (!GetHeightmapDimensions(_file_to_saveload.name, &x, &y)) return;
|
||||||
}
|
}
|
||||||
|
|
||||||
GenerateLandscapeWindow *w = AllocateWindowDescFront<GenerateLandscapeWindow>((mode == GLWM_HEIGHTMAP) ? &_heightmap_load_desc : &_generate_landscape_desc, mode);
|
WindowDesc *desc = (mode == GLWM_HEIGHTMAP) ? &_heightmap_load_desc : &_generate_landscape_desc;
|
||||||
|
GenerateLandscapeWindow *w = AllocateWindowDescFront<GenerateLandscapeWindow>(desc, mode, true);
|
||||||
|
|
||||||
if (mode == GLWM_HEIGHTMAP) {
|
if (mode == GLWM_HEIGHTMAP) {
|
||||||
w->x = x;
|
w->x = x;
|
||||||
|
|
|
@ -851,12 +851,14 @@ Window *FindWindowFromPt(int x, int y);
|
||||||
* @tparam Wcls %Window class to use if the window does not exist.
|
* @tparam Wcls %Window class to use if the window does not exist.
|
||||||
* @param desc The pointer to the WindowDesc to be created
|
* @param desc The pointer to the WindowDesc to be created
|
||||||
* @param window_number the window number of the new window
|
* @param window_number the window number of the new window
|
||||||
* @return %Window pointer of the newly created window, or \c NULL.
|
* @param return_existing If set, also return the window if it already existed.
|
||||||
|
* @return %Window pointer of the newly created window, or the existing one if \a return_existing is set, or \c NULL.
|
||||||
*/
|
*/
|
||||||
template <typename Wcls>
|
template <typename Wcls>
|
||||||
Wcls *AllocateWindowDescFront(WindowDesc *desc, int window_number)
|
Wcls *AllocateWindowDescFront(WindowDesc *desc, int window_number, bool return_existing = false)
|
||||||
{
|
{
|
||||||
if (BringWindowToFrontById(desc->cls, window_number)) return NULL;
|
Wcls *w = static_cast<Wcls *>(BringWindowToFrontById(desc->cls, window_number));
|
||||||
|
if (w != NULL) return return_existing ? w : NULL;
|
||||||
return new Wcls(desc, window_number);
|
return new Wcls(desc, window_number);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue