]> source.dussan.org Git - tigervnc.git/commitdiff
Copy r5115 from trunk.
authorPierre Ossman <ossman@cendio.se>
Wed, 29 May 2013 12:37:37 +0000 (12:37 +0000)
committerPierre Ossman <ossman@cendio.se>
Wed, 29 May 2013 12:37:37 +0000 (12:37 +0000)
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/branches/1_3@5116 3789f03b-4d11-0410-bbf8-ca57d06f2519

vncviewer/Viewport.cxx

index 25c411035aa1c341528cf213bd3f9b73e4bf4100..9fd849f830881acd22442f7d9481e227732e2da3 100644 (file)
@@ -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 ',':