mirror of
https://github.com/ankitects/anki.git
synced 2025-11-09 14:17:13 -05:00
click in middle of field doesn't scroll to end now
This commit is contained in:
parent
0e580a04d8
commit
d1507d5b63
1 changed files with 23 additions and 11 deletions
|
|
@ -94,10 +94,12 @@ function clearChangeTimer() {
|
||||||
|
|
||||||
function onFocus(elem) {
|
function onFocus(elem) {
|
||||||
currentField = elem;
|
currentField = elem;
|
||||||
// prevent webkit from highlighting the whole field
|
|
||||||
$(elem).css("-webkit-user-select", "none");
|
|
||||||
setTimeout(function () { unfocusHack() }, 1);
|
|
||||||
py.run("focus:" + currentField.id.substring(1));
|
py.run("focus:" + currentField.id.substring(1));
|
||||||
|
// don't adjust cursor on mouse clicks
|
||||||
|
if (mouseDown) { return; }
|
||||||
|
// move cursor
|
||||||
|
caretToEnd();
|
||||||
|
// scroll if bottom of element off the screen
|
||||||
function pos(obj) {
|
function pos(obj) {
|
||||||
var cur = 0;
|
var cur = 0;
|
||||||
do {
|
do {
|
||||||
|
|
@ -106,19 +108,18 @@ function onFocus(elem) {
|
||||||
return cur;
|
return cur;
|
||||||
}
|
}
|
||||||
var y = pos(elem);
|
var y = pos(elem);
|
||||||
if ((window.pageYOffset+window.innerHeight) < (y+elem.offsetHeight))
|
if ((window.pageYOffset+window.innerHeight) < (y+elem.offsetHeight) ||
|
||||||
|
window.pageYOffset > y) {
|
||||||
window.scroll(0,y+elem.offsetHeight-window.innerHeight);
|
window.scroll(0,y+elem.offsetHeight-window.innerHeight);
|
||||||
else if (window.pageYOffset > y)
|
}
|
||||||
window.scroll(0, y-15);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// restore cursor
|
function caretToEnd() {
|
||||||
function unfocusHack() {
|
|
||||||
$(currentField).css("-webkit-user-select", "text");
|
|
||||||
var r = document.createRange()
|
var r = document.createRange()
|
||||||
r.selectNodeContents(currentField);
|
r.selectNodeContents(currentField);
|
||||||
r.collapse();
|
r.collapse(false);
|
||||||
var s = document.getSelection();
|
var s = document.getSelection();
|
||||||
|
s.removeAllRanges();
|
||||||
s.addRange(r);
|
s.addRange(r);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -177,7 +178,6 @@ function setFields(fields, focusTo) {
|
||||||
if (!focusTo) {
|
if (!focusTo) {
|
||||||
focusTo = 0;
|
focusTo = 0;
|
||||||
}
|
}
|
||||||
$("#f"+focusTo).focus();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function setBackgrounds(cols) {
|
function setBackgrounds(cols) {
|
||||||
|
|
@ -201,6 +201,18 @@ function showDupes() {
|
||||||
function hideDupes() {
|
function hideDupes() {
|
||||||
$("#dupes").hide();
|
$("#dupes").hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var mouseDown = 0;
|
||||||
|
|
||||||
|
$(function () {
|
||||||
|
document.body.onmousedown = function () {
|
||||||
|
mouseDown++;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.body.onmouseup = function () {
|
||||||
|
mouseDown--;
|
||||||
|
}});
|
||||||
|
|
||||||
</script></head><body>
|
</script></head><body>
|
||||||
<div id="fields"></div>
|
<div id="fields"></div>
|
||||||
<div id="dupes"><a href="#" onclick="py.run('dupes');return false;">%s</a></div>
|
<div id="dupes"><a href="#" onclick="py.run('dupes');return false;">%s</a></div>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue