summaryrefslogtreecommitdiff
path: root/src/rail_gui.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/rail_gui.cpp')
-rw-r--r--src/rail_gui.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp
index 8d206389c..1cd17d441 100644
--- a/src/rail_gui.cpp
+++ b/src/rail_gui.cpp
@@ -898,16 +898,17 @@ static const WindowDesc _build_rail_desc(
* If the terraform toolbar is linked to the toolbar, that window is also opened.
*
* @param railtype Rail type to open the window for
+ * @return newly opened rail toolbar, or NULL if the toolbar could not be opened.
*/
-void ShowBuildRailToolbar(RailType railtype)
+Window *ShowBuildRailToolbar(RailType railtype)
{
- if (!Company::IsValidID(_local_company)) return;
- if (!ValParamRailtype(railtype)) return;
+ if (!Company::IsValidID(_local_company)) return NULL;
+ if (!ValParamRailtype(railtype)) return NULL;
DeleteWindowByClass(WC_BUILD_TOOLBAR);
_cur_railtype = railtype;
- BuildRailToolbarWindow *w = new BuildRailToolbarWindow(&_build_rail_desc, TRANSPORT_RAIL, railtype);
_remove_button_clicked = false;
+ return new BuildRailToolbarWindow(&_build_rail_desc, TRANSPORT_RAIL, railtype);
}
EventState RailToolbarGlobalHotkeys(uint16 key, uint16 keycode)
@@ -915,8 +916,8 @@ EventState RailToolbarGlobalHotkeys(uint16 key, uint16 keycode)
extern RailType _last_built_railtype;
int num = CheckHotkeyMatch<BuildRailToolbarWindow>(_railtoolbar_hotkeys, keycode, NULL, true);
if (num == -1) return ES_NOT_HANDLED;
- ShowBuildRailToolbar(_last_built_railtype);
- Window *w = FindWindowByClass(WC_BUILD_TOOLBAR);
+ Window *w = ShowBuildRailToolbar(_last_built_railtype);
+ if (w == NULL) return ES_NOT_HANDLED;
return w->OnKeyPress(key, keycode);
}