@@ -880,12 +880,14 @@ void mame_ui_manager::display_startup_screens(bool first_time)
880880 // if we're the empty driver, force the menus on
881881 if (ui::menu::stack_has_special_main_menu (*this ))
882882 {
883- show_menu ();
883+ m_ui_target = &machine ().render ().ui_target ();
884+ activate_menu ();
884885 }
885886 else if (config_menu)
886887 {
887- ui::menu::stack_push<ui::menu_main>(*this , machine ().render ().ui_target ());
888- show_menu ();
888+ m_ui_target = &machine ().render ().ui_target ();
889+ ui::menu::stack_push<ui::menu_main>(*this , *m_ui_target);
890+ activate_menu ();
889891
890892 // loop while we have a handler
891893 while (m_handler_callback_type != ui_callback_type::GENERAL && !machine ().scheduled_event_pending ())
@@ -1356,7 +1358,29 @@ bool mame_ui_manager::show_profiler() const
13561358// show_menu - show the menus
13571359// -------------------------------------------------
13581360
1359- void mame_ui_manager::show_menu ()
1361+ bool mame_ui_manager::show_menu ()
1362+ {
1363+ return show_menu (current_ui_target ());
1364+ }
1365+
1366+ bool mame_ui_manager::show_menu (render_target &target)
1367+ {
1368+ if (ui_callback_type::GENERAL != m_handler_callback_type)
1369+ return false ;
1370+
1371+ m_ui_target = ⌖
1372+ if (ui::menu::stack_empty (*this ))
1373+ ui::menu::stack_push<ui::menu_main>(*this , *m_ui_target);
1374+ activate_menu ();
1375+ return true ;
1376+ }
1377+
1378+
1379+ // -------------------------------------------------
1380+ // activate_menu - show the menus
1381+ // -------------------------------------------------
1382+
1383+ void mame_ui_manager::activate_menu ()
13601384{
13611385 assert (m_ui_target);
13621386
@@ -1710,7 +1734,7 @@ uint32_t mame_ui_manager::handler_ingame()
17101734 }
17111735 if (ui::menu::stack_empty (*this ))
17121736 ui::menu::stack_push<ui::menu_main>(*this , *m_ui_target);
1713- show_menu ();
1737+ activate_menu ();
17141738 return 0 ;
17151739 }
17161740
@@ -1719,7 +1743,7 @@ uint32_t mame_ui_manager::handler_ingame()
17191743 {
17201744 m_ui_target = ¤t_ui_target ();
17211745 ui::menu::stack_push<ui::menu_sliders>(*this , *m_ui_target, true );
1722- show_menu ();
1746+ activate_menu ();
17231747 return 0 ;
17241748 }
17251749
@@ -1774,7 +1798,7 @@ uint32_t mame_ui_manager::handler_ingame()
17741798 {
17751799 m_ui_target = ¤t_ui_target ();
17761800 ui::menu::stack_push<ui::menu_save_state>(*this , *m_ui_target, true );
1777- show_menu ();
1801+ activate_menu ();
17781802 return 0 ;
17791803 }
17801804
@@ -1783,7 +1807,7 @@ uint32_t mame_ui_manager::handler_ingame()
17831807 {
17841808 m_ui_target = ¤t_ui_target ();
17851809 ui::menu::stack_push<ui::menu_load_state>(*this , *m_ui_target, true );
1786- show_menu ();
1810+ activate_menu ();
17871811 return 0 ;
17881812 }
17891813
@@ -1889,7 +1913,7 @@ void mame_ui_manager::request_quit()
18891913 m_paused_for_menu = true ;
18901914 }
18911915 ui::menu::stack_push<ui::menu_confirm_quit>(*this , *m_ui_target);
1892- show_menu ();
1916+ activate_menu ();
18931917 }
18941918}
18951919
0 commit comments