This commit establishes a comprehensive native menu system for the Tauri application, bringing it to parity with the Electron implementation and enabling full keyboard shortcut support. ## Key Features Added **Native Menu System:** - Complete menu bar with File, Edit, View, and Window menus - Platform-specific adaptations (macOS app menu, Windows/Linux quit behavior) - Full menu event handling system with proper window management **Keyboard Accelerators:** - CmdOrCtrl+N for New Instance creation - Standard Edit menu shortcuts (Undo, Redo, Cut, Copy, Paste, Select All) - View menu shortcuts (Reload, Force Reload, Toggle DevTools, Fullscreen) - Built-in zoom hotkeys enabled via zoomHotkeysEnabled **Enhanced Capabilities:** - Added core:menu:default permission for menu management - Added core:webview:allow-set-webview-zoom for zoom functionality - Proper event communication between Tauri backend and frontend **Frontend Integration:** - Tauri event listener for menu:newInstance events - Proper cleanup and error handling for event subscriptions - Runtime environment detection for Tauri-specific behavior ## Technical Changes **Backend (Rust):** - Replaced empty menu stub with full SubmenuBuilder implementation - Added comprehensive menu event handling with window operations - Implemented MenuItem::with_id for accelerator support - Added platform-specific menu construction logic **Frontend (TypeScript):** - Added Tauri event listener integration in main App component - Proper lifecycle management with onMount/onCleanup - Runtime environment detection for conditional Tauri behavior **Configuration:** - Enabled zoomHotkeysEnabled in tauri.conf.json for built-in zoom support - Updated capabilities to include necessary menu and webview permissions This implementation provides a native, platform-consistent user experience with full keyboard shortcut support, matching the functionality users expect from desktop applications.
1 line
404 B
JSON
1 line
404 B
JSON
{"main-window-native-dialogs":{"identifier":"main-window-native-dialogs","description":"Grant the main window access to required core features and native dialog commands.","remote":{"urls":["http://127.0.0.1:*","http://localhost:*"]},"local":true,"windows":["main"],"permissions":["core:default","core:menu:default","dialog:allow-open","opener:allow-default-urls","core:webview:allow-set-webview-zoom"]}} |