summaryrefslogtreecommitdiffstatshomepage
path: root/src/frontend/mame/ui/confswitch.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/mame/ui/confswitch.cpp')
-rw-r--r--src/frontend/mame/ui/confswitch.cpp26
1 files changed, 15 insertions, 11 deletions
diff --git a/src/frontend/mame/ui/confswitch.cpp b/src/frontend/mame/ui/confswitch.cpp
index ffeae2fff38..7d6030ce669 100644
--- a/src/frontend/mame/ui/confswitch.cpp
+++ b/src/frontend/mame/ui/confswitch.cpp
@@ -190,17 +190,6 @@ void menu_confswitch::handle(event const *ev)
switch (ev->iptkey)
{
- // if selected, reset to default value
- case IPT_UI_SELECT:
- {
- ioport_field::user_settings settings;
- field.get_user_settings(settings);
- settings.value = field.defvalue();
- field.set_user_settings(settings);
- }
- changed = true;
- break;
-
// left goes to previous setting
case IPT_UI_LEFT:
field.select_previous_setting();
@@ -208,11 +197,26 @@ void menu_confswitch::handle(event const *ev)
break;
// right goes to next setting
+ case IPT_UI_SELECT:
case IPT_UI_RIGHT:
field.select_next_setting();
changed = true;
break;
+ // if cleared, reset to default value
+ case IPT_UI_CLEAR:
+ {
+ ioport_field::user_settings settings;
+ field.get_user_settings(settings);
+ if (field.defvalue() != settings.value)
+ {
+ settings.value = field.defvalue();
+ field.set_user_settings(settings);
+ changed = true;
+ }
+ }
+ break;
+
// trick to get previous group - depend on headings having null reference
case IPT_UI_PREV_GROUP:
{