Просмотр исходного кода

fixed handling of contextMenuEnabled when switching profiles

Former-commit-id: 82d01246fafb18985f7648dc2f50e1832dec5abb
Gildas 6 лет назад
Родитель
Сommit
8aedbfeab0
1 измененных файлов с 10 добавлено и 0 удалено
  1. 10 0
      extension/ui/bg/ui-menus.js

+ 10 - 0
extension/ui/bg/ui-menus.js

@@ -65,6 +65,7 @@ singlefile.extension.ui.bg.menus = (() => {
 
 
 	const menusCheckedState = new Map();
 	const menusCheckedState = new Map();
 	const menusTitleState = new Map();
 	const menusTitleState = new Map();
+	let menusVisibleState;
 	let profileIndexes = new Map();
 	let profileIndexes = new Map();
 	let menusCreated, pendingRefresh;
 	let menusCreated, pendingRefresh;
 	initialize();
 	initialize();
@@ -431,6 +432,7 @@ singlefile.extension.ui.bg.menus = (() => {
 			promises.push(updateCheckedValue(MENU_ID_AUTO_SAVE_ALL, Boolean(tabsData.autoSaveAll)));
 			promises.push(updateCheckedValue(MENU_ID_AUTO_SAVE_ALL, Boolean(tabsData.autoSaveAll)));
 			if (tab && tab.url) {
 			if (tab && tab.url) {
 				const options = await config.getOptions(tab.url);
 				const options = await config.getOptions(tab.url);
+				promises.push(updateVisibleValue(tab, options.contextMenuEnabled));
 				promises.push(menus.update(MENU_ID_SAVE_SELECTED, { visible: !options.saveRawPage }));
 				promises.push(menus.update(MENU_ID_SAVE_SELECTED, { visible: !options.saveRawPage }));
 				let selectedEntryId = MENU_ID_ASSOCIATE_WITH_PROFILE_PREFIX + "default";
 				let selectedEntryId = MENU_ID_ASSOCIATE_WITH_PROFILE_PREFIX + "default";
 				let title = MENU_CREATE_DOMAIN_RULE_MESSAGE;
 				let title = MENU_CREATE_DOMAIN_RULE_MESSAGE;
@@ -457,6 +459,14 @@ singlefile.extension.ui.bg.menus = (() => {
 		}
 		}
 	}
 	}
 
 
+	async function updateVisibleValue(tab, visible) {
+		const lastVisibleValue = menusVisibleState;
+		menusVisibleState = visible;
+		if (lastVisibleValue === undefined || lastVisibleValue != visible) {
+			await createMenus(tab);
+		}
+	}
+
 	function updateTitleValue(id, title) {
 	function updateTitleValue(id, title) {
 		const lastTitleValue = menusTitleState.get(id);
 		const lastTitleValue = menusTitleState.get(id);
 		menusTitleState.set(id, title);
 		menusTitleState.set(id, title);