diff --git a/canvasblocker.xpi b/canvasblocker.xpi index 8db8e30..df5676b 100644 Binary files a/canvasblocker.xpi and b/canvasblocker.xpi differ diff --git a/data/options.css b/data/options.css new file mode 100644 index 0000000..b219665 --- /dev/null +++ b/data/options.css @@ -0,0 +1,16 @@ +setting[pref-name="showNotifications"] { + border-bottom: 0px transparent none; + padding-top: 0.5em; +} +setting[pref-name="ignoreList"]{ + border-top: 0px transparent none; + padding-bottom: 0.5em; +} +setting[pref-name="showCallingFile"]{ + border-bottom: 0px transparent none; + padding-top: 0.5em; +} +setting[pref-name="showCompleteCallingStack"]{ + border-top: 0px transparent none; + padding-bottom: 0.5em; +} \ No newline at end of file diff --git a/lib/main.js b/lib/main.js index 752cf56..b4dd326 100644 --- a/lib/main.js +++ b/lib/main.js @@ -4,6 +4,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ (function(){ "use strict"; + require("./stylePreferencePane.js"); var self = require("sdk/self"); var pageMod = require("sdk/page-mod"); diff --git a/lib/stylePreferencePane.js b/lib/stylePreferencePane.js new file mode 100644 index 0000000..e96b082 --- /dev/null +++ b/lib/stylePreferencePane.js @@ -0,0 +1,33 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +(function(){ + "use strict"; + const { Cu } = require('chrome'); + const { on } = require('sdk/system/events'); + const self = require('sdk/self'); + const { AddonManager } = Cu.import("resource://gre/modules/AddonManager.jsm"); + const { setTimeout } = require("sdk/timers"); + const { loadSheet } = require("sdk/stylesheet/utils"); + AddonManager.getAddonByID(self.id, function(addon){ + on('addon-options-displayed', onAddonOptionsDisplayed, true); + }); + + function onAddonOptionsDisplayed({ subject: doc, data }) { + if (data === self.id) { + loadSheet(doc.defaultView, self.data.url("options.css")); + + // need to wait unttil the simple-prefs are inserted in the DOM + setTimeout(function(){ + // replace empty menuitems with separators + [].slice.call(doc.querySelectorAll("menuitem[value='']")).forEach( + function(menuitem){ + var separator = doc.createElement("menuseparator"); + menuitem.parentNode.replaceChild(separator, menuitem); + } + ); + }, 1); + } + } + +}()); \ No newline at end of file diff --git a/package.json b/package.json index 997834e..73c322a 100644 --- a/package.json +++ b/package.json @@ -70,29 +70,25 @@ "name": "showNotifications", "title": "Show notifications", "type": "bool", - "value": true, - "style": "border-bottom: 0px transparent none; padding-top: 0.5em;" + "value": true }, { "name": "ignoreList", "title": "Ignore list", "type": "string", - "value": "", - "style": "border-top: 0px transparent none; padding-bottom: 0.5em;" + "value": "" }, { "name": "showCallingFile", "title": "Display calling file", "type": "bool", - "value": false, - "style": "border-bottom: 0px transparent none; padding-top: 0.5em;" + "value": false }, { "name": "showCompleteCallingStack", "title": "Display complete calling stack", "type": "bool", - "value": false, - "style": "border-top: 0px transparent none; padding-bottom: 0.5em;" + "value": false }, { "name": "allowPDFCanvas",