Parcourir la source

Work around Windows poor handling of the numpad decimal key.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@5083 3789f03b-4d11-0410-bbf8-ca57d06f2519
tags/v1.2.90
Pierre Ossman il y a 11 ans
Parent
révision
7e8ace1ca7
1 fichiers modifiés avec 20 ajouts et 0 suppressions
  1. 20
    0
      vncviewer/Viewport.cxx

+ 20
- 0
vncviewer/Viewport.cxx Voir le fichier

@@ -594,6 +594,26 @@ rdr::U32 Viewport::translateKeyEvent(int keyCode, int origKeyCode, const char *k
}
#endif

#ifdef WIN32
// 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:
// 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.
if ((keyCode == (FL_KP + ',')) || (keyCode == (FL_KP + '.'))) {
switch (keyText[0]) {
case ',':
return XK_KP_Separator;
case '.':
return XK_KP_Decimal;
default:
vlog.error(_("Unknown decimal separator: '%s'"), keyText);
return XK_KP_Decimal;
}
}
#endif

// Then other special keys
switch (keyCode) {
case FL_BackSpace:

Chargement…
Annuler
Enregistrer