diff --git a/src/openrct2-ui/windows/GuestList.cpp b/src/openrct2-ui/windows/GuestList.cpp index f1f24e9ab9..0590b2216d 100644 --- a/src/openrct2-ui/windows/GuestList.cpp +++ b/src/openrct2-ui/windows/GuestList.cpp @@ -381,6 +381,10 @@ public: void OnDropdown(WidgetIndex widgetIndex, int32_t dropdownIndex) override { + if (dropdownIndex == -1) + { + return; + } switch (widgetIndex) { case WIDX_PAGE_DROPDOWN_BUTTON: diff --git a/src/openrct2-ui/windows/ServerList.cpp b/src/openrct2-ui/windows/ServerList.cpp index c9b334738e..0abff1f2fc 100644 --- a/src/openrct2-ui/windows/ServerList.cpp +++ b/src/openrct2-ui/windows/ServerList.cpp @@ -169,6 +169,10 @@ public: void OnDropdown(WidgetIndex widgetIndex, int32_t selectedIndex) override { + if (selectedIndex == -1) + { + return; + } auto serverIndex = selected_list_item; if (serverIndex >= 0 && serverIndex < static_cast(_serverList.GetCount())) { diff --git a/src/openrct2-ui/windows/StaffList.cpp b/src/openrct2-ui/windows/StaffList.cpp index d7ff745021..bcb6783332 100644 --- a/src/openrct2-ui/windows/StaffList.cpp +++ b/src/openrct2-ui/windows/StaffList.cpp @@ -238,6 +238,10 @@ public: void OnDropdown(WidgetIndex widgetIndex, int32_t dropdownIndex) override { + if (dropdownIndex == -1) + { + return; + } if (widgetIndex == WIDX_STAFF_LIST_UNIFORM_COLOUR_PICKER) { auto action = StaffSetColourAction(GetSelectedStaffType(), ColourDropDownIndexToColour(dropdownIndex)); diff --git a/src/openrct2-ui/windows/TitleMenu.cpp b/src/openrct2-ui/windows/TitleMenu.cpp index 77fa3dfe5d..97c99ef81b 100644 --- a/src/openrct2-ui/windows/TitleMenu.cpp +++ b/src/openrct2-ui/windows/TitleMenu.cpp @@ -219,6 +219,10 @@ public: void OnDropdown(WidgetIndex widgetIndex, int32_t selectedIndex) override { + if (selectedIndex == -1) + { + return; + } if (widgetIndex == WIDX_GAME_TOOLS) { switch (selectedIndex) diff --git a/src/openrct2-ui/windows/TopToolbar.cpp b/src/openrct2-ui/windows/TopToolbar.cpp index 80a5dea1fd..b7745c497e 100644 --- a/src/openrct2-ui/windows/TopToolbar.cpp +++ b/src/openrct2-ui/windows/TopToolbar.cpp @@ -2653,6 +2653,10 @@ public: void OnDropdown(WidgetIndex widgetIndex, int32_t selectedIndex) override { + if (selectedIndex == -1) + { + return; + } switch (widgetIndex) { case WIDX_FILE_MENU: diff --git a/src/openrct2/interface/Window.cpp b/src/openrct2/interface/Window.cpp index e8db23cdb3..d240759790 100644 --- a/src/openrct2/interface/Window.cpp +++ b/src/openrct2/interface/Window.cpp @@ -1447,10 +1447,7 @@ void WindowEventDropdownCall(WindowBase* w, WidgetIndex widgetIndex, int32_t dro { if (w->event_handlers == nullptr) { - if (dropdownIndex != -1) - { - w->OnDropdown(widgetIndex, dropdownIndex); - } + w->OnDropdown(widgetIndex, dropdownIndex); } else if (w->event_handlers->dropdown != nullptr) {