This commit is contained in:
Camilla Berglund
2014-01-22 01:34:44 +01:00
parent 5ed23e593c
commit 58db8622bd
5 changed files with 36 additions and 43 deletions
+13 -15
View File
@@ -854,38 +854,36 @@ static struct codepair {
// Convert X11 KeySym to Unicode
//
long _glfwKeySym2Unicode( KeySym keysym )
long _glfwKeySym2Unicode(KeySym keysym)
{
int min = 0;
int max = sizeof(keysymtab) / sizeof(struct codepair) - 1;
int mid;
/* First check for Latin-1 characters (1:1 mapping) */
if( (keysym >= 0x0020 && keysym <= 0x007e) ||
(keysym >= 0x00a0 && keysym <= 0x00ff) )
{ return keysym;
// First check for Latin-1 characters (1:1 mapping)
if ((keysym >= 0x0020 && keysym <= 0x007e) ||
(keysym >= 0x00a0 && keysym <= 0x00ff))
{
return keysym;
}
/* Also check for directly encoded 24-bit UCS characters */
if( (keysym & 0xff000000) == 0x01000000 )
// Also check for directly encoded 24-bit UCS characters
if ((keysym & 0xff000000) == 0x01000000)
return keysym & 0x00ffffff;
/* Binary search in table */
while( max >= min )
// Binary search in table
while (max >= min)
{
mid = (min + max) / 2;
if( keysymtab[mid].keysym < keysym )
if (keysymtab[mid].keysym < keysym)
min = mid + 1;
else if( keysymtab[mid].keysym > keysym )
else if (keysymtab[mid].keysym > keysym)
max = mid - 1;
else
{
/* Found it! */
return keysymtab[mid].ucs;
}
}
/* No matching Unicode value found */
// No matching Unicode value found
return -1;
}