summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/natkeyboard.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/natkeyboard.cpp')
-rw-r--r--src/emu/natkeyboard.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/emu/natkeyboard.cpp b/src/emu/natkeyboard.cpp
index 9a50109eb6f..7ecb034a3f9 100644
--- a/src/emu/natkeyboard.cpp
+++ b/src/emu/natkeyboard.cpp
@@ -323,6 +323,7 @@ natural_keyboard::natural_keyboard(running_machine &machine)
, m_fieldnum(0)
, m_status_keydown(false)
, m_last_cr(false)
+ , m_post_lf(false)
, m_timer(nullptr)
, m_current_rate(attotime::zero)
, m_queue_chars()
@@ -412,8 +413,14 @@ void natural_keyboard::post(char32_t ch)
// can we post this key in the queue directly?
if (can_post_directly(ch))
+ {
internal_post(ch);
+ // post LF with CR
+ if (ch == '\r' && m_post_lf)
+ internal_post('\n');
+ }
+
// can we post this key with an alternate representation?
else if (can_post_alternate(ch))
{
@@ -640,6 +647,11 @@ void natural_keyboard::build_codes(ioport_manager &manager)
machine().logerror("natural_keyboard: code=%u (%s) port=%p field.name='%s'\n",
code, unicode_to_string(code), (void *)&port, field.name());
}
+
+
+ // check for line feed key
+ if (code == '\n' && curshift == 0)
+ m_post_lf = true;
}
}
}