1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-02-11 12:55:46 +01:00

Add a hint mode for selecting scrollable elements.

Update issue 151
This should do what you want.
This commit is contained in:
Kris Maglione
2010-12-02 20:29:51 -05:00
parent 9a9449f554
commit 0346a1ff18
5 changed files with 46 additions and 14 deletions

View File

@@ -519,10 +519,22 @@ const Buffer = Module("buffer", {
}
else {
elem.focus();
if (elem instanceof Window && elem.getSelection() && !elem.getSelection().rangeCount)
elem.getSelection().addRange(RangeFind.endpoint(
RangeFind.nodeRange(elem.document.body || elem.document.documentElement),
true));
if (elem instanceof Window) {
let sel = elem.getSelection();
if (sel && !sel.rangeCount)
sel.addRange(RangeFind.endpoint(
RangeFind.nodeRange(elem.document.body || elem.document.documentElement),
true));
}
else {
let range = RangeFind.nodeRange(elem);
let sel = (elem.ownerDocument || elem).defaultView.getSelection();
if (!sel.rangeCount || !RangeFind.intersects(range, sel.getRangeAt(0))) {
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
}
}
// for imagemap
if (elem instanceof HTMLAreaElement) {
@@ -1109,9 +1121,13 @@ const Buffer = Module("buffer", {
return elem;
}
var elem = buffer.focusedFrame.document.activeElement;
if (elem == elem.ownerDocument.body)
elem = null;
let sel = buffer.focusedFrame.getSelection();
if (sel && sel.rangeCount)
var elem = find(sel.getRangeAt(0).startContainer);
if (!elem && sel && sel.rangeCount)
elem = find(sel.getRangeAt(0).startContainer);
if (!(elem instanceof Element)) {
let doc = Buffer.findScrollableWindow().document;