summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2011-12-21 18:11:51 +0000
committer Olivier Galibert <galibert@pobox.com>2011-12-21 18:11:51 +0000
commit849e02dafeeaeedb3b2b23a2b03a7b42bbd509cd (patch)
tree558d7cee1ca1ee4987494a45cc1814b8d229df4d
parentcedca57fe3988f7291ca9128c75fcc88234a7b29 (diff)
uimain: MT 4569 fix [O. Galibert]
-rw-r--r--src/emu/uimain.c8
-rw-r--r--src/emu/uimain.h1
2 files changed, 8 insertions, 1 deletions
diff --git a/src/emu/uimain.c b/src/emu/uimain.c
index fbe730fafd7..5cd95070726 100644
--- a/src/emu/uimain.c
+++ b/src/emu/uimain.c
@@ -604,7 +604,7 @@ void ui_menu_input_general::populate()
input_item_data *item = (input_item_data *)m_pool_alloc(sizeof(*item));
memset(item, 0, sizeof(*item));
item->ref = entry;
- if(pollingitem && pollingref == entry)
+ if(pollingitem && pollingref == entry && pollingseq == seqtype)
pollingitem = item;
item->seqtype = seqtype;
item->seq = input_type_seq(machine(), entry->type, entry->player, seqtype);
@@ -708,6 +708,9 @@ ui_menu_input_specific::~ui_menu_input_specific()
-------------------------------------------------*/
ui_menu_input::ui_menu_input(running_machine &machine, render_container *container) : ui_menu(machine, container)
{
+ pollingitem = 0;
+ pollingref = 0;
+ pollingseq = SEQ_TYPE_STANDARD;
}
ui_menu_input::~ui_menu_input()
@@ -820,7 +823,10 @@ void ui_menu_input::handle()
{
pollingref = NULL;
if (pollingitem != NULL)
+ {
pollingref = pollingitem->ref;
+ pollingseq = pollingitem->seqtype;
+ }
reset(UI_MENU_RESET_REMEMBER_POSITION);
}
}
diff --git a/src/emu/uimain.h b/src/emu/uimain.h
index 340741b76f6..b2b6d22530c 100644
--- a/src/emu/uimain.h
+++ b/src/emu/uimain.h
@@ -123,6 +123,7 @@ protected:
protected:
const void * pollingref;
+ input_seq_type pollingseq;
input_item_data * pollingitem;
private: