Преглед на файлове

* $E0 for ext. keys correctly discarded now

Tomas Hajny преди 25 години
родител
ревизия
c0abd00212
променени са 1 файла, в които са добавени 15 реда и са изтрити 4 реда
  1. 15 4
      api/os2/keyboard.inc

+ 15 - 4
api/os2/keyboard.inc

@@ -81,8 +81,12 @@ begin
   KbdGetFocus (IO_Wait, Handle);
   while (KbdCharIn (K, IO_Wait, Handle) <> No_Error)
                                    or (K.fbStatus and $40 = 0) do DosSleep (5);
-  with K do GetKeyEvent := cardinal ($0300 or fsState and $F) shl 16 or
+  with K do
+  begin
+   if (byte (chChar) = $E0) and (fbStatus and 2 <> 0) then chChar := #0;
+   GetKeyEvent := cardinal ($0300 or fsState and $F) shl 16 or
                                cardinal (byte (chScan)) shl 8 or byte (chChar);
+  end;
  end;
 end;
 
@@ -94,9 +98,13 @@ begin
  begin
   KbdGetFocus (IO_NoWait, Handle);
   if (KbdCharIn (K, IO_NoWait, Handle) <> No_Error) or
-   (K.fbStatus and $40 = 0) then FillChar (K, SizeOf (K), 0) else
-     with K do PendingKeyEvent := cardinal ($0300 or fsState and $F) shl 16 or
+                 (K.fbStatus and $40 = 0) then FillChar (K, SizeOf (K), 0) else
+  with K do
+  begin
+   if (byte (chChar) = $E0) and (fbStatus and 2 <> 0) then chChar := #0;
+   PendingKeyEvent := cardinal ($0300 or fsState and $F) shl 16 or
                                cardinal (byte (chScan)) shl 8 or byte (chChar);
+  end;
  end;
  PollKeyEvent := PendingKeyEvent;
  if PendingKeyEvent and $FFFF = 0 then PendingKeyEvent := 0;
@@ -169,7 +177,10 @@ end;
 
 {
   $Log$
-  Revision 1.2  2000-07-13 11:32:26  michael
+  Revision 1.3  2000-10-08 18:41:58  hajny
+    * $E0 for ext. keys correctly discarded now
+
+  Revision 1.2  2000/07/13 11:32:26  michael
   + removed logs
  
 }