diff --git a/ext/bg/data/options-schema.json b/ext/bg/data/options-schema.json index 2e324984..80f8d782 100644 --- a/ext/bg/data/options-schema.json +++ b/ext/bg/data/options-schema.json @@ -320,6 +320,7 @@ "type": "object", "required": [ "inputs", + "preventMiddleMouse", "touchInputEnabled", "pointerEventsEnabled", "selectText", @@ -454,6 +455,33 @@ } } }, + "preventMiddleMouse": { + "type": "object", + "required": [ + "onWebPages", + "onPopupPages", + "onSearchPages", + "onSearchQuery" + ], + "properties": { + "onWebPages": { + "type": "boolean", + "default": false + }, + "onPopupPages": { + "type": "boolean", + "default": false + }, + "onSearchPages": { + "type": "boolean", + "default": false + }, + "onSearchQuery": { + "type": "boolean", + "default": false + } + } + }, "touchInputEnabled": { "type": "boolean", "default": true diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js index f9571ec2..cf24645a 100644 --- a/ext/bg/js/options.js +++ b/ext/bg/js/options.js @@ -507,6 +507,7 @@ class OptionsUtil { // Added hideDelay. // Added inputs to profileOptions.scanning. // Added pointerEventsEnabled to profileOptions.scanning. + // Added preventMiddleMouse to profileOptions.scanning. for (const {conditionGroups} of options.profiles) { for (const {conditions} of conditionGroups) { for (const condition of conditions) { @@ -531,6 +532,12 @@ class OptionsUtil { profileOptions.general.usePopupWindow = false; profileOptions.scanning.hideDelay = 0; profileOptions.scanning.pointerEventsEnabled = false; + profileOptions.scanning.preventMiddleMouse = { + onWebPages: false, + onPopupPages: false, + onSearchPages: false, + onSearchQuery: false + }; const {modifier, middleMouse} = profileOptions.scanning; delete profileOptions.scanning.modifier; diff --git a/ext/bg/settings.html b/ext/bg/settings.html index 9c8621f7..8dea0245 100644 --- a/ext/bg/settings.html +++ b/ext/bg/settings.html @@ -414,6 +414,16 @@ +
+