0
0
mirror of https://github.com/cucumber-sp/yandex-music-linux.git synced 2024-12-25 06:44:38 +03:00
yandex-music-linux/patches/0003-Create-app-tray-icon.patch

85 lines
3.2 KiB
Diff
Raw Normal View History

2024-04-27 20:40:19 +03:00
diff --git a/main/lib/createTray.js b/main/lib/createTray.js
2024-02-09 23:13:29 +03:00
--- a/main/lib/createTray.js
+++ b/main/lib/createTray.js
2024-04-27 20:40:19 +03:00
@@ -0,0 +1,21 @@
2024-02-10 19:14:52 +03:00
+const { app, Menu, Tray, nativeImage } = require('electron');
+const path = require('path');
2024-02-09 23:13:29 +03:00
+
+function createTray(window) {
2024-07-04 17:28:51 +03:00
+ const iconPath = path.join(__dirname, '../../app/favicon.png');
+ const tray = new Tray(iconPath);
2024-02-09 23:13:29 +03:00
+ const contextMenu = Menu.buildFromTemplate([
2024-02-20 16:10:09 +03:00
+ {label: 'Открыть', click: () => window.show()},
+ {label: 'Закрыть Яндекс Музыку', click: () => app.quit()}
2024-02-09 23:13:29 +03:00
+ ]);
2024-02-20 16:10:09 +03:00
+ tray.setToolTip('Яндекс Музыка');
2024-02-09 23:13:29 +03:00
+ tray.setContextMenu(contextMenu);
+
+ tray.on('click', () => {
+ window.show();
+ });
+ tray.setIgnoreDoubleClickEvents(true);
+}
+
+exports.createTray = createTray;
2024-04-27 20:40:19 +03:00
+
2024-02-09 23:13:29 +03:00
2024-02-09 23:13:29 +03:00
diff --git a/main/index.js b/main/index.js
--- a/main/index.js
+++ b/main/index.js
2024-07-04 08:23:31 +03:00
@@ -46,6 +46,9 @@ Logger_js_1.Logger.setupLogger();
2024-06-20 15:08:10 +03:00
(0, handleDeeplink_js_1.handleDeeplink)(window);
(0, handleMetrikaRequests_js_1.handleMetrikaRequests)(window);
(0, handleCrash_js_1.handleCrash)();
+ const {createTray} = require('./lib/createTray.js');
+ const trayEnabled = process.env.TRAY_ENABLED && process.env.TRAY_ENABLED > 0;
+ if (trayEnabled){createTray(window);}
2024-06-20 15:08:10 +03:00
await (0, loadURL_js_1.loadURL)(window);
if (node_os_1.default.platform() === platform_js_1.Platform.WINDOWS) {
(0, customTitleBar_js_1.createCustomTitleBar)(window);
2024-04-27 20:40:19 +03:00
diff --git a/main/lib/handlers/handleWindowLifecycleEvents.js b/main/lib/handlers/handleWindowLifecycleEvents.js
--- a/main/lib/handlers/handleWindowLifecycleEvents.js
+++ b/main/lib/handlers/handleWindowLifecycleEvents.js
2024-07-04 08:23:31 +03:00
@@ -28,9 +28,8 @@ const handleWindowLifecycleEvents = (window) => {
state_js_1.state.willQuit = true;
});
electron_1.app.on('window-all-closed', () => {
- if (node_os_1.default.platform() === platform_js_1.Platform.WINDOWS) {
- electron_1.app.quit();
- }
+ const trayEnabled = process.env.TRAY_ENABLED && process.env.TRAY_ENABLED > 0;
+ if (!trayEnabled) {electron_1.app.quit();}
});
electron_1.app.on('browser-window-blur', () => {
setBlurredTime();
2024-07-04 08:23:31 +03:00
@@ -51,22 +50,11 @@ const handleWindowLifecycleEvents = (window) => {
checkAndUpdateApplicationData(window);
});
window.on('close', (event) => {
- if (node_os_1.default.platform() !== platform_js_1.Platform.MACOS) {
- return;
- }
- if (state_js_1.state.willQuit) {
- return;
- }
+ const trayEnabled = process.env.TRAY_ENABLED && process.env.TRAY_ENABLED > 0;
+ if (!trayEnabled) {electron_1.app.quit();}
+ if (state_js_1.state.willQuit) {return;}
event.preventDefault();
- if (window.isFullScreen()) {
- window.once('leave-full-screen', () => {
- (0, createWindow_js_1.toggleWindowVisibility)(window, false);
- });
- window.setFullScreen(false);
- }
- else {
- (0, createWindow_js_1.toggleWindowVisibility)(window, false);
- }
+ (0, createWindow_js_1.toggleWindowVisibility)(window, false);
});
};
2024-04-27 20:40:19 +03:00
exports.handleWindowLifecycleEvents = handleWindowLifecycleEvents;