public/js/handsontable/jquery.handsontable.full.js
function (instance, td, row, col, prop, keyboardProxy, isCancelled, ctrlDown) {
    if (texteditor.triggerOnlyByDestroyer) {
      return;
    }
    if (texteditor.isCellEdited) {
      texteditor.isCellEdited = false;
      var val;
      if (isCancelled) {
        val = [
          [texteditor.originalValue]
        ];
      }
      else {
        val = [
          [$.trim(keyboardProxy.val())]
        ];
      }
      if (ctrlDown) { //if ctrl+enter and multiple cells selected, behave like Excel (finish editing and apply to all cells)
        var sel = instance.handsontable('getSelected');
        instance.populateFromArray({row: sel[0], col: sel[1]}, val, {row: sel[2], col: sel[3]}, false, 'edit');
      }
      else {
        instance.populateFromArray({row: row, col: col}, val, null, false, 'edit');
      }
    }
    keyboardProxy.off(".editor");
    $(td).off('.editor');

    keyboardProxy.css({
      width: 0,
      height: 0
    });
    keyboardProxy.parent().addClass('htHidden').css({
      overflow: 'hidden'
    });

    instance.container.find('.htBorder.current').off('.editor');
    instance.rootElement.triggerHandler('finishediting.handsontable');
  }
function (instance, td, row, col, prop, keyboardProxy, isCancelled, ctrlDown) {
    if (texteditor.triggerOnlyByDestroyer) {
      return;
    }
    if (texteditor.isCellEdited) {
      texteditor.isCellEdited = false;
      var val;
      if (isCancelled) {
        val = [
          [texteditor.originalValue]
        ];
      }
      else {
        val = [
          [$.trim(keyboardProxy.val())]
        ];
      }
      if (ctrlDown) { //if ctrl+enter and multiple cells selected, behave like Excel (finish editing and apply to all cells)
        var sel = instance.handsontable('getSelected');
        instance.populateFromArray({row: sel[0], col: sel[1]}, val, {row: sel[2], col: sel[3]}, false, 'edit');
      }
      else {
        instance.populateFromArray({row: row, col: col}, val, null, false, 'edit');
      }
    }
    keyboardProxy.off(".editor");
    $(td).off('.editor');

    keyboardProxy.css({
      width: 0,
      height: 0
    });
    keyboardProxy.parent().addClass('htHidden').css({
      overflow: 'hidden'
    });

    instance.container.find('.htBorder.current').off('.editor');
    instance.rootElement.triggerHandler('finishediting.handsontable');
  }
function ( instance , td , row , col , prop , keyboardProxy , isCancelled , ctrlDown ) { if ( texteditor . triggerOnlyByDestroyer ) { return ; } if ( texteditor . isCellEdited ) { texteditor . isCellEdited = false ; var val ; if ( isCancelled ) { val = [ [ texteditor . originalValue ] ] ; } else { val = [ [ $ . trim ( keyboardProxy . val ( ) ) ] ] ; } if ( ctrlDown ) { //if ctrl+enter and multiple cells selected, behave like Excel (finish editing and apply to all cells) var sel = instance . handsontable ( 'getSelected' ) ; instance . populateFromArray ( { row : sel [ 0 ] , col : sel [ 1 ] } , val , { row : sel [ 2 ] , col : sel [ 3 ] } , false , 'edit' ) ; } else { instance . populateFromArray ( { row : row , col : col } , val , null , false , 'edit' ) ; } } keyboardProxy . off ( ".editor" ) ; $ ( td ) . off ( '.editor' ) ; keyboardProxy . css ( { width : 0 , height : 0 } ) ; keyboardProxy . parent ( ) . addClass ( 'htHidden' ) . css ( { overflow : 'hidden' } ) ; instance . container . find ( '.htBorder.current' ) . off ( '.editor' ) ; instance . rootElement . triggerHandler ( 'finishediting.handsontable' ) ; }
Finishes text input in selected cells
Finishes text input in selected cells