mirror of https://github.com/OpenTTD/OpenTTD
(svn r24811) -Add: Close engine preview window when another client accepts it.
parent
0e4b212c45
commit
5c358c4173
|
@ -749,6 +749,13 @@ static void AcceptEnginePreview(EngineID eid, CompanyID company)
|
||||||
/* Update the toolbar. */
|
/* Update the toolbar. */
|
||||||
if (e->type == VEH_ROAD) InvalidateWindowData(WC_BUILD_TOOLBAR, TRANSPORT_ROAD);
|
if (e->type == VEH_ROAD) InvalidateWindowData(WC_BUILD_TOOLBAR, TRANSPORT_ROAD);
|
||||||
if (e->type == VEH_SHIP) InvalidateWindowData(WC_BUILD_TOOLBAR, TRANSPORT_WATER);
|
if (e->type == VEH_SHIP) InvalidateWindowData(WC_BUILD_TOOLBAR, TRANSPORT_WATER);
|
||||||
|
|
||||||
|
/* Notify preview window, that it might want to close.
|
||||||
|
* Note: We cannot directly close the window.
|
||||||
|
* In singleplayer this function is called from the preview window, so
|
||||||
|
* we have to use the GUI-scope scheduling of InvalidateWindowData.
|
||||||
|
*/
|
||||||
|
InvalidateWindowData(WC_ENGINE_PREVIEW, eid);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -110,6 +110,14 @@ struct EnginePreviewWindow : Window {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||||
|
{
|
||||||
|
if (!gui_scope) return;
|
||||||
|
|
||||||
|
EngineID engine = this->window_number;
|
||||||
|
if (Engine::Get(engine)->preview_company != _local_company) delete this;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static const WindowDesc _engine_preview_desc(
|
static const WindowDesc _engine_preview_desc(
|
||||||
|
|
Loading…
Reference in New Issue