mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-22 00:17:58 +01:00
Some small changes for the sake of plugins.
This commit is contained in:
@@ -1217,6 +1217,13 @@ var Buffer = Module("buffer", {
|
|||||||
return elem || doc.body || doc.documentElement;
|
return elem || doc.body || doc.documentElement;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
scrollTo: function scrollTo(elem, left, top) {
|
||||||
|
if (left != null)
|
||||||
|
elem.scrollLeft = left;
|
||||||
|
if (top != null)
|
||||||
|
elem.scrollTop = top;
|
||||||
|
},
|
||||||
|
|
||||||
scrollVertical: function scrollVertical(elem, increment, number) {
|
scrollVertical: function scrollVertical(elem, increment, number) {
|
||||||
elem = elem || Buffer.findScrollable(number, false);
|
elem = elem || Buffer.findScrollable(number, false);
|
||||||
let fontSize = parseInt(util.computedStyle(elem).fontSize);
|
let fontSize = parseInt(util.computedStyle(elem).fontSize);
|
||||||
@@ -1227,10 +1234,8 @@ var Buffer = Module("buffer", {
|
|||||||
else
|
else
|
||||||
throw Error();
|
throw Error();
|
||||||
|
|
||||||
if (number < 0 ? elem.scrollTop > 0 : elem.scrollTop < elem.scrollHeight - elem.clientHeight)
|
dactyl.assert(number < 0 ? elem.scrollTop > 0 : elem.scrollTop < elem.scrollHeight - elem.clientHeight);
|
||||||
elem.scrollTop += number * increment;
|
Buffer.scrollTo(elem, null, elem.scrollTop + number * increment);
|
||||||
else
|
|
||||||
dactyl.beep();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
scrollHorizontal: function scrollHorizontal(elem, increment, number) {
|
scrollHorizontal: function scrollHorizontal(elem, increment, number) {
|
||||||
@@ -1243,21 +1248,19 @@ var Buffer = Module("buffer", {
|
|||||||
else
|
else
|
||||||
throw Error();
|
throw Error();
|
||||||
|
|
||||||
if (number < 0 ? elem.scrollLeft > 0 : elem.scrollLeft < elem.scrollWidth - elem.clientWidth)
|
dactyl.assert(number < 0 ? elem.scrollLeft > 0 : elem.scrollLeft < elem.scrollWidth - elem.clientWidth);
|
||||||
elem.scrollLeft += number * increment;
|
Buffer.scrollTo(elem, elem.scrollLeft + number * increment, null);
|
||||||
else
|
|
||||||
dactyl.beep();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
scrollToPercent: function scrollElemToPercent(elem, horizontal, vertical) {
|
scrollToPercent: function scrollElemToPercent(elem, horizontal, vertical) {
|
||||||
elem = elem || Buffer.findScrollable(0, vertical == null);
|
elem = elem || Buffer.findScrollable(0, vertical == null);
|
||||||
marks.add("'", true);
|
marks.add("'", true);
|
||||||
|
|
||||||
if (horizontal != null)
|
Buffer.scrollTo(elem,
|
||||||
elem.scrollLeft = (elem.scrollWidth - elem.clientWidth) * (horizontal / 100);
|
horizontal == null ? null
|
||||||
|
: (elem.scrollWidth - elem.clientWidth) * (horizontal / 100),
|
||||||
if (vertical != null)
|
vertical == null ? null
|
||||||
elem.scrollTop = (elem.scrollHeight - elem.clientHeight) * (vertical / 100);
|
: (elem.scrollHeight - elem.clientHeight) * (vertical / 100));
|
||||||
},
|
},
|
||||||
|
|
||||||
openUploadPrompt: function openUploadPrompt(elem) {
|
openUploadPrompt: function openUploadPrompt(elem) {
|
||||||
|
|||||||
@@ -690,10 +690,11 @@ function update(target) {
|
|||||||
desc = desc.value.init(k) || desc.value;
|
desc = desc.value.init(k) || desc.value;
|
||||||
if (typeof desc.value == "function" && Object.getPrototypeOf(target)) {
|
if (typeof desc.value == "function" && Object.getPrototypeOf(target)) {
|
||||||
let func = desc.value;
|
let func = desc.value;
|
||||||
desc.value.superapply = function (self, args)
|
desc.value.__defineGetter__("super", function () Object.getPrototypeOf(target)[k]);
|
||||||
|
desc.value.superapply = function superapply(self, args)
|
||||||
let (meth = Object.getPrototypeOf(target)[k])
|
let (meth = Object.getPrototypeOf(target)[k])
|
||||||
meth && meth.apply(self, args);
|
meth && meth.apply(self, args);
|
||||||
desc.value.supercall = function (self)
|
desc.value.supercall = function supercall(self)
|
||||||
func.superapply(self, Array.slice(arguments, 1));
|
func.superapply(self, Array.slice(arguments, 1));
|
||||||
}
|
}
|
||||||
Object.defineProperty(target, k, desc);
|
Object.defineProperty(target, k, desc);
|
||||||
|
|||||||
@@ -988,6 +988,27 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
|
|||||||
}), true);
|
}), true);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
overlayObject: function (object, overrides) {
|
||||||
|
let original = Object.create(object);
|
||||||
|
overrides = update(Object.create(original), overrides);
|
||||||
|
|
||||||
|
for each (let k in Object.getOwnPropertyNames(overrides)) {
|
||||||
|
let orig, desc = Object.getOwnPropertyDescriptor(overrides, k);
|
||||||
|
if (desc.value instanceof Class.Property)
|
||||||
|
desc = desc.value.init(k) || desc.value;
|
||||||
|
|
||||||
|
for (let obj = object; obj && !orig; obj = Object.getPrototypeOf(obj))
|
||||||
|
if (orig = Object.getOwnPropertyDescriptor(obj, k))
|
||||||
|
Object.defineProperty(original, k, orig);
|
||||||
|
|
||||||
|
Object.defineProperty(object, k, desc);
|
||||||
|
}
|
||||||
|
return function unwrap() {
|
||||||
|
for each (let k in Object.getOwnPropertyNames(original))
|
||||||
|
Object.defineProperty(object, k, Object.getOwnPropertyDescriptor(original, k));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
overlayWindow: function (url, fn) {
|
overlayWindow: function (url, fn) {
|
||||||
if (url instanceof Ci.nsIDOMWindow)
|
if (url instanceof Ci.nsIDOMWindow)
|
||||||
util._loadOverlay(url, fn);
|
util._loadOverlay(url, fn);
|
||||||
|
|||||||
Reference in New Issue
Block a user