From adc0d145c320e745f7dc05baf59085741318fae3 Mon Sep 17 00:00:00 2001 From: Araxeus <78568641+Araxeus@users.noreply.github.com> Date: Thu, 1 Apr 2021 19:02:39 +0300 Subject: [PATCH] update styled-bars to support all changes permantly --- plugins/styled-bars/back.js | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/plugins/styled-bars/back.js b/plugins/styled-bars/back.js index 37fd6c8b..433a56d8 100644 --- a/plugins/styled-bars/back.js +++ b/plugins/styled-bars/back.js @@ -5,23 +5,24 @@ const electronLocalshortcut = require("electron-localshortcut"); const config = require('../../config'); var { mainMenuTemplate } = require("../../menu"); -//override menu template for custom menu -const originTemplate = mainMenuTemplate; -mainMenuTemplate = function (winHook) { - //get template - let template = originTemplate(winHook); +//override Menu.buildFromTemplate to also fix menu +const originBuildMenu = Menu.buildFromTemplate; +//this function natively gets called on all submenu so no more reason to use recursion +Menu.buildFromTemplate = function (template) { //fix checkbox and roles fixMenu(template); //return as normal - return template; + return originBuildMenu(template); } + //win hook for fixing menu let win; //check that menu doesn't get created twice let done = false; -module.exports = winImport => { +module.exports = winImport => { + //override menu template for custom menu win = winImport; // css for custom scrollbar + disable drag area(was causing bugs) injectCSS(win.webContents, path.join(__dirname, 'style.css')); @@ -55,12 +56,9 @@ function switchMenuVisibility() { function fixMenu(template) { for (let index in template) { let item = template[index]; - //apply function on submenu - if (item.submenu != null) { - fixMenu(item.submenu); - } - //change onClick of checkbox+radio - else if (item.type === 'checkbox' || item.type === 'radio') { + //change onClick of checkbox+radio if not fixed + if ((item.type === 'checkbox' || item.type === 'radio') && !item.fixed) { + item.fixed = true; let ogOnclick = item.click; item.click = (itemClicked) => { ogOnclick(itemClicked);