@@ -1780,19 +1780,23 @@ if (!mobile) {
17801780 const appMenu = menuCreate ( ) ;
17811781 menuAddItem ( appMenu , 'About Mango' , ( ) => { aboutWindow . show ( ) ; } ) ;
17821782
1783- // Edit menu — standard actions routed to first responder for CMD+A/C/V/X
1784- const editMenu = menuCreate ( ) ;
1785- menuAddStandardAction ( editMenu , 'Undo' , 'undo:' , 'z' ) ;
1786- menuAddStandardAction ( editMenu , 'Redo' , 'redo:' , 'Cmd+Shift+z' ) ;
1787- menuAddSeparator ( editMenu ) ;
1788- menuAddStandardAction ( editMenu , 'Cut' , 'cut:' , 'x' ) ;
1789- menuAddStandardAction ( editMenu , 'Copy' , 'copy:' , 'c' ) ;
1790- menuAddStandardAction ( editMenu , 'Paste' , 'paste:' , 'v' ) ;
1791- menuAddStandardAction ( editMenu , 'Select All' , 'selectAll:' , 'a' ) ;
1792-
17931783 const menuBar = menuBarCreate ( ) ;
17941784 menuBarAddMenu ( menuBar , 'Mango' , appMenu ) ;
1795- menuBarAddMenu ( menuBar , 'Edit' , editMenu ) ;
1785+
1786+ // macOS requires Edit menu for CMD+A/C/V/X to reach NSTextField.
1787+ // GTK4 (Linux) and Win32 (Windows) handle Ctrl+C/V/A natively.
1788+ if ( __platform__ === 0 ) {
1789+ const editMenu = menuCreate ( ) ;
1790+ menuAddStandardAction ( editMenu , 'Undo' , 'undo:' , 'z' ) ;
1791+ menuAddStandardAction ( editMenu , 'Redo' , 'redo:' , 'Cmd+Shift+z' ) ;
1792+ menuAddSeparator ( editMenu ) ;
1793+ menuAddStandardAction ( editMenu , 'Cut' , 'cut:' , 'x' ) ;
1794+ menuAddStandardAction ( editMenu , 'Copy' , 'copy:' , 'c' ) ;
1795+ menuAddStandardAction ( editMenu , 'Paste' , 'paste:' , 'v' ) ;
1796+ menuAddStandardAction ( editMenu , 'Select All' , 'selectAll:' , 'a' ) ;
1797+ menuBarAddMenu ( menuBar , 'Edit' , editMenu ) ;
1798+ }
1799+
17961800 menuBarAttach ( menuBar ) ;
17971801}
17981802
0 commit comments