From 1ecdddde2619b0a6a021ba22b12bbc44edba086d Mon Sep 17 00:00:00 2001
From: Krishan <33421343+kfiven@users.noreply.github.com>
Date: Mon, 16 May 2022 16:30:01 +0530
Subject: [PATCH] Fix copy-paste not working on macOS

---
 src-tauri/src/main.rs | 12 ++++++++++--
 src-tauri/src/menu.rs | 41 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 51 insertions(+), 2 deletions(-)
 create mode 100644 src-tauri/src/menu.rs

diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs
index e994ea4..eee64e1 100644
--- a/src-tauri/src/main.rs
+++ b/src-tauri/src/main.rs
@@ -3,8 +3,16 @@
   windows_subsystem = "windows"
 )]
 
+#[cfg(target_os = "macos")]
+mod menu;
+
 fn main() {
-  tauri::Builder::default()
+  let builder = tauri::Builder::default();
+
+  #[cfg(target_os = "macos")]
+  let builder = builder.menu(menu::menu());
+
+  builder
     .run(tauri::generate_context!())
     .expect("error while running tauri application");
-}
+}
\ No newline at end of file
diff --git a/src-tauri/src/menu.rs b/src-tauri/src/menu.rs
new file mode 100644
index 0000000..2aa2975
--- /dev/null
+++ b/src-tauri/src/menu.rs
@@ -0,0 +1,41 @@
+use tauri::{AboutMetadata, Menu, MenuItem, Submenu};
+//for macOS
+pub(crate) fn menu() -> Menu {
+    Menu::new()
+        .add_submenu(Submenu::new(
+            "Cinny",
+            Menu::new()
+                .add_native_item(MenuItem::About(
+                    "Cinny".to_string(),
+                    AboutMetadata::new(),
+                ))
+                .add_native_item(MenuItem::Separator)
+                .add_native_item(MenuItem::Hide)
+                .add_native_item(MenuItem::HideOthers)
+                .add_native_item(MenuItem::ShowAll)
+                .add_native_item(MenuItem::Separator)
+                .add_native_item(MenuItem::Quit),
+        ))
+        .add_submenu(Submenu::new(
+            "Edit",
+            Menu::new()
+                .add_native_item(MenuItem::Undo)
+                .add_native_item(MenuItem::Redo)
+                .add_native_item(MenuItem::Separator)
+                .add_native_item(MenuItem::Cut)
+                .add_native_item(MenuItem::Copy)
+                .add_native_item(MenuItem::Paste)
+                .add_native_item(MenuItem::SelectAll),
+        ))
+        .add_submenu(Submenu::new(
+            "View",
+            Menu::new()
+                .add_native_item(MenuItem::EnterFullScreen),
+        ))
+        .add_submenu(Submenu::new(
+            "Window",
+            Menu::new()
+                .add_native_item(MenuItem::Minimize)
+                .add_native_item(MenuItem::Zoom),
+        ))
+}
\ No newline at end of file