diff --git a/src/osd/modules/debugger/debugqt.c b/src/osd/modules/debugger/debugqt.c index 20eb39538a4..06588854d83 100644 --- a/src/osd/modules/debugger/debugqt.c +++ b/src/osd/modules/debugger/debugqt.c @@ -2,7 +2,7 @@ // // debugqt.c - SDL/QT debug window handling // -// Copyright (c) 1996-2010, Nicola Salmoria and the MAME Team. +// Copyright (c) 1996-2014, Nicola Salmoria and the MAME Team. // Visit http://mamedev.org for licensing and usage restrictions. // // SDLMAME by Olivier Galibert and R. Belmont @@ -278,51 +278,51 @@ void debugger_qt::wait_for_debugger(device_t &device, bool firststop) continue; widget->show(); } - bring_main_window_to_front(); + + if (firststop) + { + bring_main_window_to_front(); + } // Set the main window to display the proper cpu mainQtWindow->setProcessor(&device); // Run our own QT event loop - while (debug_cpu_is_stopped(m_osd.machine())) + osd_sleep(50000); + qApp->processEvents(QEventLoop::AllEvents, 1); + + // Refresh everyone if requested + if (mainQtWindow->wantsRefresh()) { - osd_sleep(50000); - qApp->processEvents(QEventLoop::AllEvents, 1); + QWidgetList allWidgets = qApp->allWidgets(); + for (int i = 0; i < allWidgets.length(); i++) + allWidgets[i]->update(); + mainQtWindow->clearRefreshFlag(); + } - // Refresh everyone if requested - if (mainQtWindow->wantsRefresh()) + // Hide all top level widgets if requested + if (mainQtWindow->wantsHide()) + { + foreach (QWidget* widget, QApplication::topLevelWidgets()) { - QWidgetList allWidgets = qApp->allWidgets(); - for (int i = 0; i < allWidgets.length(); i++) - allWidgets[i]->update(); - mainQtWindow->clearRefreshFlag(); + if (!widget->isWindow() || widget->windowType() != Qt::Window) + continue; + widget->hide(); } + mainQtWindow->clearHideFlag(); + } - // Hide all top level widgets if requested - if (mainQtWindow->wantsHide()) - { - foreach (QWidget* widget, QApplication::topLevelWidgets()) - { - if (!widget->isWindow() || widget->windowType() != Qt::Window) - continue; - widget->hide(); - } - mainQtWindow->clearHideFlag(); - } - - // Exit if the machine has been instructed to do so (scheduled event == exit || hard_reset) - if (m_osd.machine().scheduled_event_pending()) - { - // Keep a list of windows we want to save. - // We need to do this here because by the time xml_configuration_save gets called - // all the QT windows are already gone. - gather_save_configurations(); - break; - } + // Exit if the machine has been instructed to do so (scheduled event == exit || hard_reset) + if (m_osd.machine().scheduled_event_pending()) + { + // Keep a list of windows we want to save. + // We need to do this here because by the time xml_configuration_save gets called + // all the QT windows are already gone. + gather_save_configurations(); + } #if defined(WIN32) && !defined(SDLMAME_WIN32) winwindow_update_cursor_state(m_osd.machine()); // make sure the cursor isn't hidden while in debugger #endif - } }