Browse Source

* skip e0 scancodes in certain cases. bug #8978

git-svn-id: trunk@11566 -
marco 17 years ago
parent
commit
89ae7d0b25
1 changed files with 6 additions and 0 deletions
  1. 6 0
      packages/fv/src/drivers.pas

+ 6 - 0
packages/fv/src/drivers.pas

@@ -1058,6 +1058,12 @@ begin
      key:=Keyboard.GetKeyEvent;
      key:=Keyboard.GetKeyEvent;
      keycode:=Keyboard.GetKeyEventCode(key);
      keycode:=Keyboard.GetKeyEventCode(key);
      keyshift:=KeyBoard.GetKeyEventShiftState(key);
      keyshift:=KeyBoard.GetKeyEventShiftState(key);
+     // some kbds still honour old XT E0 prefix. (org IBM ps/2, win98?) bug #8978
+     if (keycode and $FF = $E0) and
+        (byte(keycode shr 8) in  
+              [$1C,$1D,$2A,$35..$38,$46..$49,$4b,$4d,$4f,$50..$53]) Then
+          keycode := keycode and $FF00;
+     
      { fixup shift-keys }
      { fixup shift-keys }
      if keyshift and kbShift<>0 then
      if keyshift and kbShift<>0 then
        begin
        begin