]> source.dussan.org Git - tigervnc.git/commitdiff
Fix up numpad keys.
authorPierre Ossman <ossman@cendio.se>
Thu, 10 Mar 2011 11:56:17 +0000 (11:56 +0000)
committerPierre Ossman <ossman@cendio.se>
Thu, 10 Mar 2011 11:56:17 +0000 (11:56 +0000)
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4356 3789f03b-4d11-0410-bbf8-ca57d06f2519

vncviewer/DesktopWindow.cxx

index eca19836db0c9b6d4f7f63e279faf933fa836f00..0188f72411f70ce94f962873b8fb0b39539a512a 100644 (file)
@@ -284,6 +284,10 @@ rdr::U32 DesktopWindow::translateKeyEvent(int keyCode, const char *keyText)
   if ((keyCode >= FL_F) && (keyCode <= FL_F_Last))
     return XK_F1 + (keyCode - FL_F);
 
+  // Numpad numbers
+  if ((keyCode >= (FL_KP + '0')) && (keyCode <= (FL_KP + '9')))
+    return XK_KP_0 + (keyCode - (FL_KP + '0'));
+
   // Then other special keys
   switch (keyCode) {
   case FL_BackSpace:
@@ -344,6 +348,22 @@ rdr::U32 DesktopWindow::translateKeyEvent(int keyCode, const char *keyText)
     return XK_Alt_R;
   case FL_Delete:
     return XK_Delete;
+  case FL_KP_Enter:
+    return XK_KP_Enter;
+  case FL_KP + '=':
+    return XK_KP_Equal;
+  case FL_KP + '*':
+    return XK_KP_Multiply;
+  case FL_KP + '+':
+    return XK_KP_Add;
+  case FL_KP + ',':
+    return XK_KP_Separator;
+  case FL_KP + '-':
+    return XK_KP_Subtract;
+  case FL_KP + '.':
+    return XK_KP_Decimal;
+  case FL_KP + '/':
+    return XK_KP_Divide;
   }
 
   // Unknown special key?