Safari compatibility
Only tested on macOS so far, not iOS.
This commit is contained in:
parent
1299e61225
commit
a923b3bfa7
|
@ -78,6 +78,9 @@ var override_focusout = false;
|
|||
var sman_allow_delete = false;
|
||||
var sman_allow_rename = false;
|
||||
|
||||
// This is true iff [we're in macOS and the browser is Safari] or [we're in iOS]
|
||||
var using_webkit_patch = false;
|
||||
|
||||
// Key states
|
||||
var shift_down = false;
|
||||
var do_clear_ent = false;
|
||||
|
@ -985,10 +988,12 @@ function chunkOnSelectionChange(event) {
|
|||
highlightEditingChunks();
|
||||
// Attempt to prevent Chromium-based browsers on Android from
|
||||
// scrolling away from the current selection
|
||||
if(!using_webkit_patch) {
|
||||
setTimeout(function() {
|
||||
game_text.blur();
|
||||
game_text.focus();
|
||||
}, 144);
|
||||
}
|
||||
}, 2);
|
||||
}, 2);
|
||||
}
|
||||
|
@ -1092,6 +1097,35 @@ $(document).ready(function(){
|
|||
seqselmenu = $("#seqselmenu");
|
||||
seqselcontents = $("#seqselcontents");
|
||||
|
||||
// A simple feature detection test to determine whether the user interface
|
||||
// is using WebKit (Safari browser's rendering engine) because WebKit
|
||||
// requires special treatment to work correctly with the KoboldAI editor
|
||||
using_webkit_patch = (function() {
|
||||
try {
|
||||
var active_element = document.activeElement;
|
||||
var c = document.createElement("chunk");
|
||||
var t = document.createTextNode("KoboldAI");
|
||||
c.appendChild(t);
|
||||
game_text[0].appendChild(c);
|
||||
var r = rangy.createRange();
|
||||
r.setStart(t, 6);
|
||||
r.collapse(true);
|
||||
var s = rangy.getSelection();
|
||||
s.removeAllRanges();
|
||||
s.addRange(r);
|
||||
game_text.blur();
|
||||
game_text.focus();
|
||||
var offset = rangy.getSelection().focusOffset;
|
||||
c.removeChild(t);
|
||||
game_text[0].removeChild(c);
|
||||
document.activeElement.blur();
|
||||
active_element.focus();
|
||||
return offset !== 6;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
})();
|
||||
|
||||
// Connect to SocketIO server
|
||||
socket = io.connect(window.document.origin);
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<script src="static/jquery-3.6.0.min.js"></script>
|
||||
<script src="static/socket.io.min.js"></script>
|
||||
<script src="static/application.js?ver=1.16.2b"></script>
|
||||
<script src="static/application.js?ver=1.16.2c"></script>
|
||||
<script src="static/bootstrap.min.js"></script>
|
||||
<script src="static/bootstrap-toggle.min.js"></script>
|
||||
<script src="static/rangy-core.min.js"></script>
|
||||
|
|
Loading…
Reference in New Issue