fixed keyboard shortcuts for mac
authorPhiTux <redacted>
Wed, 8 Oct 2025 17:20:21 +0000 (19:20 +0200)
committerPhiTux <redacted>
Wed, 8 Oct 2025 17:20:21 +0000 (19:20 +0200)
frontend/src/routes/(authed)/write/+page.svelte

index 64f213b2cad2d648a3d8507895748fdada5b22d1..3b36624a6c4eea29265c6b56927277a077910a17 100644 (file)
 
        let altPressed = false;
        let ctrlPressed = false;
+       let macAltPressed = $state(false);
+       let MacCtrlPressed = $state(false);
+       const isMac = navigator.platform.toUpperCase().includes('MAC');
        function on_key_down(event) {
-               if (event.key === 'Alt') {
+               if (!isMac && event.key === 'Alt') {
                        event.preventDefault();
                        altPressed = true;
                }
+               if (isMac && event.key === 'Alt') {
+                       event.preventDefault();
+                       macAltPressed = true;
+               }
+               if (isMac && event.key === 'Control') {
+                       event.preventDefault();
+                       MacCtrlPressed = true;
+               }
                if (event.key === 'ArrowRight' && altPressed) {
                        event.preventDefault();
                        changeDay(+1);
                        event.preventDefault();
                        changeDay(-1);
                }
-               if (event.key === 'Control') {
+               if (!isMac && event.key === 'Control') {
                        event.preventDefault();
                        ctrlPressed = true;
                }
-               if (event.key === 'g' && ctrlPressed) {
+               if (event.key === 'g' && (ctrlPressed || MacCtrlPressed)) {
                        event.preventDefault();
                        document.getElementById('tag-input').focus();
                }
        }
 
+       $effect(() => {
+               if (isMac) {
+                       if (macAltPressed && MacCtrlPressed) {
+                               altPressed = true;
+                       } else {
+                               altPressed = false;
+                       }
+               }
+       });
+
        function on_key_up(event) {
-               if (event.key === 'Alt') {
+               if (!isMac && event.key === 'Alt') {
                        event.preventDefault();
                        altPressed = false;
                }
-               if (event.key === 'Control') {
+               if (isMac && event.key === 'Alt') {
+                       event.preventDefault();
+                       macAltPressed = false;
+               }
+               if (isMac && event.key === 'Control') {
+                       event.preventDefault();
+                       MacCtrlPressed = false;
+               }
+               if (!isMac && event.key === 'Control') {
                        event.preventDefault();
                        ctrlPressed = false;
                }
git clone https://git.99rst.org/PROJECT