(svn r24811) -Add: Close engine preview window when another client accepts it.

pull/155/head
frosch 12 years ago
parent 9f0e8399b0
commit f126497c08

@ -749,6 +749,13 @@ static void AcceptEnginePreview(EngineID eid, CompanyID company)
/* Update the toolbar. */
if (e->type == VEH_ROAD) InvalidateWindowData(WC_BUILD_TOOLBAR, TRANSPORT_ROAD);
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;
}
}
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(

Loading…
Cancel
Save