Browse Source

Update zgl_application.pas

Seenkao 4 years ago
parent
commit
b4baf32ef8
1 changed files with 73 additions and 71 deletions
  1. 73 71
      Zengl_SRC/src/zgl_application.pas

+ 73 - 71
Zengl_SRC/src/zgl_application.pas

@@ -1118,76 +1118,6 @@ eventLoop:
     NSFlagsChanged:
     NSFlagsChanged:
       begin
       begin
         modFlags := ev.modifierFlags;
         modFlags := ev.modifierFlags;
-        if (modFlags and 256) > 0 then
-        begin
-          if ((modFlags and 2) = 0) then
-          begin
-            keysUp[K_SHIFT_L] := True;
-            keysDown[K_SHIFT_L] := False;
-            if ((modFlags and 4) = 0) then
-            begin
-              keysUp[K_SHIFT] := True;
-              keysDown[K_SHIFT] := False;
-              keybFlags := keybFlags and ($FFFFFFFF - keyboardShift);
-            end;
-          end;
-          if ((modFlags and 4) = 0) then
-          begin
-            keysUp[K_SHIFT_R] := True;
-            keysDown[K_SHIFT_R] := False;
-          end;
-
-          if ((modFlags and 1) = 0) then
-          begin
-            keysUp[K_CTRL_L] := True;
-            keysDown[K_CTRL_L] := False;
-            if ((modFlags and $2000) = 0) then
-            begin
-              keysUp[K_CTRL] := True;
-              keysDown[K_CTRL] := False;
-              keybFlags := keybFlags and ($FFFFFFFF - keyboardCtrl);
-            end;
-          end;
-          if ((modFlags and $2000) = 0) then
-          begin
-            keysUp[K_CTRL_R] := True;
-            keysDown[K_CTRL_R] := False;
-          end;
-
-          if ((modFlags and $20) = 0) then
-          begin
-            keysUp[K_ALT_L] := True;
-            keysDown[K_ALT_L] := False;
-            if ((modFlags and $40) = 0) then
-            begin
-              keysUp[K_ALT] := True;
-              keysDown[K_ALT] := False;
-              keybFlags := keybFlags and ($FFFFFFFF - keyboardAlt);
-            end;
-          end;
-          if ((modFlags and $40) = 0) then
-          begin
-            keysUp[K_ALT_R] := True;
-            keysDown[K_ALT_R] := False;
-          end;
-
-          if ((modFlags and 8) = 0) then
-          begin
-            keysUp[K_SUPER_L] := True;
-            keysDown[K_SUPER_L] := False;
-            if ((modFlags and 16) = 0) then
-            begin
-              keysUp[K_SUPER] := True;
-              keysDown[K_SUPER] := False;
-              keybFlags := keybFlags and ($FFFFFFFF - keyboardCommand);
-            end;
-          end;
-          if ((modFlags and 16) = 0) then
-          begin
-            keysUp[K_SUPER_R] := True;
-            keysDown[K_SUPER_R] := False;
-          end;
-        end;
         if (modFlags and NSAlphaShiftKeyMask) > 0 then
         if (modFlags and NSAlphaShiftKeyMask) > 0 then
           keybFlags := keybFlags or keyboardCaps
           keybFlags := keybFlags or keyboardCaps
         else
         else
@@ -1207,6 +1137,24 @@ eventLoop:
             keysDown[K_SHIFT_R] := true;
             keysDown[K_SHIFT_R] := true;
             keysUp[K_SHIFT_R] := False;
             keysUp[K_SHIFT_R] := False;
           end;
           end;
+        end
+        else begin
+          if ((modFlags and 2) = 0) then
+          begin
+            keysUp[K_SHIFT_L] := True;
+            keysDown[K_SHIFT_L] := False;
+            if ((modFlags and 4) = 0) then
+            begin
+              keysUp[K_SHIFT] := True;
+              keysDown[K_SHIFT] := False;
+              keybFlags := keybFlags and ($FFFFFFFF - keyboardShift);
+            end;
+          end;
+          if ((modFlags and 4) = 0) then
+          begin
+            keysUp[K_SHIFT_R] := True;
+            keysDown[K_SHIFT_R] := False;
+          end;
         end;
         end;
         if (modFlags and NSControlKeyMask) > 0 then
         if (modFlags and NSControlKeyMask) > 0 then
         begin
         begin
@@ -1223,6 +1171,24 @@ eventLoop:
             keysDown[K_CTRL_R] := true;
             keysDown[K_CTRL_R] := true;
             keysUp[K_CTRL_R] := False;
             keysUp[K_CTRL_R] := False;
           end;
           end;
+        end
+        else begin
+          if ((modFlags and 1) = 0) then
+          begin
+            keysUp[K_CTRL_L] := True;
+            keysDown[K_CTRL_L] := False;
+            if ((modFlags and $2000) = 0) then
+            begin
+              keysUp[K_CTRL] := True;
+              keysDown[K_CTRL] := False;
+              keybFlags := keybFlags and ($FFFFFFFF - keyboardCtrl);
+            end;
+          end;
+          if ((modFlags and $2000) = 0) then
+          begin
+            keysUp[K_CTRL_R] := True;
+            keysDown[K_CTRL_R] := False;
+          end;
         end;
         end;
         if (modFlags and NSAlternateKeyMask) > 0 then
         if (modFlags and NSAlternateKeyMask) > 0 then
         begin
         begin
@@ -1239,6 +1205,24 @@ eventLoop:
             keysDown[K_ALT_R] := true;
             keysDown[K_ALT_R] := true;
             keysDown[K_ALT_R] := False;
             keysDown[K_ALT_R] := False;
           end;
           end;
+        end
+        else begin
+          if ((modFlags and $20) = 0) then
+          begin
+            keysUp[K_ALT_L] := True;
+            keysDown[K_ALT_L] := False;
+            if ((modFlags and $40) = 0) then
+            begin
+              keysUp[K_ALT] := True;
+              keysDown[K_ALT] := False;
+              keybFlags := keybFlags and ($FFFFFFFF - keyboardAlt);
+            end;
+          end;
+          if ((modFlags and $40) = 0) then
+          begin
+            keysUp[K_ALT_R] := True;
+            keysDown[K_ALT_R] := False;
+          end;
         end;
         end;
         if (modFlags and NSCommandKeyMask) > 0 then
         if (modFlags and NSCommandKeyMask) > 0 then
         begin
         begin
@@ -1255,7 +1239,25 @@ eventLoop:
             keysDown[K_SUPER_R] := true;
             keysDown[K_SUPER_R] := true;
             keysUp[K_SUPER_R] := False;
             keysUp[K_SUPER_R] := False;
           end;
           end;
-        end;                                
+        end
+        else begin
+          if ((modFlags and 8) = 0) then
+          begin
+            keysUp[K_SUPER_L] := True;
+            keysDown[K_SUPER_L] := False;
+            if ((modFlags and 16) = 0) then
+            begin
+              keysUp[K_SUPER] := True;
+              keysDown[K_SUPER] := False;
+              keybFlags := keybFlags and ($FFFFFFFF - keyboardCommand);
+            end;
+          end;
+          if ((modFlags and 16) = 0) then
+          begin
+            keysUp[K_SUPER_R] := True;
+            keysDown[K_SUPER_R] := False;
+          end;
+        end;
       end;
       end;
     NSKeyDown, NSKeyDownMask:
     NSKeyDown, NSKeyDownMask:
       begin
       begin