From 6608411c08b2c9589f7ec6e7e4a03273d3cba636 Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Wed, 29 May 2013 12:37:37 +0000 Subject: [PATCH] Copy r5115 from trunk. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/branches/1_3@5116 3789f03b-4d11-0410-bbf8-ca57d06f2519 --- vncviewer/Viewport.cxx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/vncviewer/Viewport.cxx b/vncviewer/Viewport.cxx index 25c41103..9fd849f8 100644 --- a/vncviewer/Viewport.cxx +++ b/vncviewer/Viewport.cxx @@ -594,13 +594,20 @@ rdr::U32 Viewport::translateKeyEvent(int keyCode, int origKeyCode, const char *k } #endif -#ifdef WIN32 +#if defined(WIN32) || defined(__APPLE__) // X11 fairly consistently uses XK_KP_Separator for comma and - // XK_KP_Decimal for period. Windows unfortunately is terribly - // inconcistent, and is not something that's likely to change: + // XK_KP_Decimal for period. Windows and OS X are a different matter + // though. + // + // OS X will consistently generate the same key code no matter what + // layout is being used. + // + // Windows is terribly inconcistent, and is not something that's + // likely to change: // http://blogs.msdn.com/michkap/archive/2006/09/13/752377.aspx - // To work around this we look at what character the key generates - // and try to follow X11 behaviour. + // + // To get X11 behaviour, we instead look at the text generated by + // they key. if ((keyCode == (FL_KP + ',')) || (keyCode == (FL_KP + '.'))) { switch (keyText[0]) { case ',': -- 2.39.5