Merge pull request #743 from parkerlamb/startup_race

Prevent race condition during emulator startup (issue #702)
This commit is contained in:
Justin Moore
2017-08-03 21:36:22 -05:00
committed by GitHub
7 changed files with 48 additions and 1 deletions

View File

@@ -174,6 +174,18 @@ void Win32Window::OnClose() {
super::OnClose();
}
void Win32Window::EnableMainMenu() {
if (main_menu_) {
main_menu_->EnableMenuItem(*this);
}
}
void Win32Window::DisableMainMenu() {
if (main_menu_) {
main_menu_->DisableMenuItem(*this);
}
}
bool Win32Window::set_title(const std::wstring& title) {
if (!super::set_title(title)) {
return false;
@@ -698,6 +710,22 @@ Win32MenuItem::~Win32MenuItem() {
}
}
void Win32MenuItem::EnableMenuItem(Window& window) {
int i = 0;
for (auto iter = children_.begin(); iter != children_.end(); ++iter, i++) {
::EnableMenuItem(handle_, i, MF_BYPOSITION | MF_ENABLED);
}
DrawMenuBar((HWND)window.native_handle());
}
void Win32MenuItem::DisableMenuItem(Window& window) {
int i = 0;
for (auto iter = children_.begin(); iter != children_.end(); ++iter, i++) {
::EnableMenuItem(handle_, i, MF_BYPOSITION | MF_GRAYED);
}
DrawMenuBar((HWND)window.native_handle());
}
void Win32MenuItem::OnChildAdded(MenuItem* generic_child_item) {
auto child_item = static_cast<Win32MenuItem*>(generic_child_item);