fix a couple of subtle backwards compatibility bugs
This commit is contained in:
parent
0ca3bdae9f
commit
40b77b2eb8
2 changed files with 23 additions and 19 deletions
|
|
@ -11,6 +11,10 @@ let defaultin_plugin = (function () {
|
||||||
// find where the key comes from
|
// find where the key comes from
|
||||||
var inputfield = $(".inputfield:focus");
|
var inputfield = $(".inputfield:focus");
|
||||||
|
|
||||||
|
if( inputfield.length < 1 ) { // non-goldenlayout backwards compatibility
|
||||||
|
inputfield = $("#inputfield:focus");
|
||||||
|
}
|
||||||
|
|
||||||
// check for important keys
|
// check for important keys
|
||||||
switch (event.which) {
|
switch (event.which) {
|
||||||
case 9: // ignore tab key -- allows normal focus control
|
case 9: // ignore tab key -- allows normal focus control
|
||||||
|
|
@ -22,13 +26,13 @@ let defaultin_plugin = (function () {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 13: // Enter key
|
case 13: // Enter key
|
||||||
var outtext = inputfield.val();
|
var outtext = inputfield.val(); // Grab the text from which-ever inputfield is focused
|
||||||
if ( outtext && !event.shiftKey ) { // Enter Key without shift --> send Mesg
|
if ( outtext && !event.shiftKey ) { // Enter Key without shift --> send Mesg
|
||||||
var lines = outtext.trim().replace(/[\r]+/,"\n").replace(/[\n]+/, "\n").split("\n");
|
var lines = outtext.trim().replace(/[\r]+/,"\n").replace(/[\n]+/, "\n").split("\n");
|
||||||
for (var i = 0; i < lines.length; i++) {
|
for (var i = 0; i < lines.length; i++) {
|
||||||
plugin_handler.onSend( lines[i].trim() );
|
plugin_handler.onSend( lines[i].trim() );
|
||||||
}
|
}
|
||||||
inputfield.val('');
|
inputfield.val(''); // Clear this inputfield
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
}
|
}
|
||||||
inputfield.blur();
|
inputfield.blur();
|
||||||
|
|
@ -36,10 +40,15 @@ let defaultin_plugin = (function () {
|
||||||
|
|
||||||
// Anything else, focus() a textarea if needed, and allow the default event
|
// Anything else, focus() a textarea if needed, and allow the default event
|
||||||
default:
|
default:
|
||||||
// is anything actually focused? if not, focus the first .inputfield found in the DOM
|
// is an inputfield actually focused?
|
||||||
if( !inputfield.hasClass('inputfield') ) {
|
if( inputfield.length < 1 ) {
|
||||||
// :first only matters if dual_input or similar multi-input plugins are in use
|
// Nope, focus the last .inputfield found in the DOM (or #inputfield)
|
||||||
$('.inputfield:last').focus();
|
// :last only matters if multi-input plugins are in use
|
||||||
|
inputfield = $(".inputfield:last")
|
||||||
|
inputfield.focus();
|
||||||
|
if( inputfield.length < 1 ) { // non-goldenlayout backwards compatibility
|
||||||
|
$("#inputfield").focus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -49,13 +58,13 @@ let defaultin_plugin = (function () {
|
||||||
//
|
//
|
||||||
// Mandatory plugin init function
|
// Mandatory plugin init function
|
||||||
var init = function () {
|
var init = function () {
|
||||||
// Handle pressing the send button
|
// Handle pressing the send button, this only applies to non-goldenlayout setups
|
||||||
$("#inputsend")
|
$("#inputsend")
|
||||||
.bind("click", function (evnt) {
|
.bind("click", function (evnt) {
|
||||||
// simulate a carriage return
|
// simulate a carriage return
|
||||||
var e = $.Event( "keydown" );
|
var e = $.Event( "keydown" );
|
||||||
e.which = 13;
|
e.which = 13;
|
||||||
$('.inputfield:last').trigger(e);
|
$("#inputfield").focus().trigger(e);
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log('DefaultIn initialized');
|
console.log('DefaultIn initialized');
|
||||||
|
|
|
||||||
|
|
@ -42,15 +42,6 @@ let history_plugin = (function () {
|
||||||
history_pos = 0;
|
history_pos = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Add input to the scratch line
|
|
||||||
var scratch = function (input) {
|
|
||||||
// Put the input into the last history entry (which is normally empty)
|
|
||||||
// without making the array larger as with add.
|
|
||||||
// Allows for in-progress editing to be saved.
|
|
||||||
history[history.length-1] = input;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Public
|
// Public
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
@ -58,7 +49,6 @@ let history_plugin = (function () {
|
||||||
var onKeydown = function(event) {
|
var onKeydown = function(event) {
|
||||||
var code = event.which;
|
var code = event.which;
|
||||||
var history_entry = null;
|
var history_entry = null;
|
||||||
var inputfield = $('.inputfield:focus');
|
|
||||||
|
|
||||||
// Only process up/down arrow if cursor is at the end of the line.
|
// Only process up/down arrow if cursor is at the end of the line.
|
||||||
if (code === 38 && event.shiftKey) { // Arrow up
|
if (code === 38 && event.shiftKey) { // Arrow up
|
||||||
|
|
@ -70,7 +60,12 @@ let history_plugin = (function () {
|
||||||
|
|
||||||
// are we processing an up or down history event?
|
// are we processing an up or down history event?
|
||||||
if (history_entry !== null) {
|
if (history_entry !== null) {
|
||||||
// Doing a history navigation; replace the text in the input and move the cursor to the end of the new value
|
// Doing a history navigation; replace the text in the input and
|
||||||
|
// move the cursor to the end of the new value
|
||||||
|
var inputfield = $('.inputfield:focus');
|
||||||
|
if( inputfield.length < 1 ) { // pre-goldenlayout backwards compatibility
|
||||||
|
inputfield = $('#inputfield');
|
||||||
|
}
|
||||||
inputfield.val('');
|
inputfield.val('');
|
||||||
inputfield.blur().focus().val(history_entry);
|
inputfield.blur().focus().val(history_entry);
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue