Fixed an issue with pasting text in ComboBoxCellEditor.
diff --git a/bundles/org.eclipse.rap.rwt.q07/js/org/eclipse/swt/widgets/Combo.js b/bundles/org.eclipse.rap.rwt.q07/js/org/eclipse/swt/widgets/Combo.js index c0c7172..2ecedc4 100644 --- a/bundles/org.eclipse.rap.rwt.q07/js/org/eclipse/swt/widgets/Combo.js +++ b/bundles/org.eclipse.rap.rwt.q07/js/org/eclipse/swt/widgets/Combo.js
@@ -81,6 +81,7 @@ this.addEventListener( "keyinput", this._onKeyInput ); // Specific events this._field.addEventListener( "blur", this._onTextBlur, this ); + this._field.addEventListener( "input", this._onTextInput, this ); this._list.addEventListener( "appear", this._onListAppear, this ); }, @@ -108,6 +109,7 @@ this.removeEventListener( "keypress", this._onKeyPress ); this.removeEventListener( "keyinput", this._onKeyInput ); this._field.removeEventListener( "blur", this._onTextBlur, this ); + this._field.removeEventListener( "input", this._onTextInput, this ); this._list.removeEventListener( "appear", this._onListAppear, this ); // Solution taken from Qooxdoo implementation of ComboBox // in order to prevent memory leak and other problems. @@ -517,24 +519,6 @@ var selected = this._manager.getSelectedItem(); this._setSelected( selected ); break; - default: - charCode = evt.getCharCode(); - keyIdentifier = evt.getKeyIdentifier(); - if( this._editable && ( charCode > 0 - || keyIdentifier == "Delete" - || keyIdentifier == "Backspace" ) ) - { - this._isModified = true; - this._selected = null; - this._resetListSelection(); - if( !org_eclipse_rap_rwt_EventUtil_suspend ) { - var req = org.eclipse.swt.Request.getInstance(); - req.addEventListener( "send", this._onSend, this ); - if( this._hasVerifyModifyListener ) { - qx.client.Timer.once( this._sendModifyText, this, 500 ); - } - } - } } if( this._field.isCreated() && this.hasState( "rwt_CCOMBO" ) @@ -552,6 +536,21 @@ } }, + _onTextInput : function( evt ) { + if( this._editable ) { + this._isModified = true; + this._selected = null; + this._resetListSelection(); + if( !org_eclipse_rap_rwt_EventUtil_suspend ) { + var req = org.eclipse.swt.Request.getInstance(); + req.addEventListener( "send", this._onSend, this ); + if( this._hasVerifyModifyListener ) { + qx.client.Timer.once( this._sendModifyText, this, 500 ); + } + } + } + }, + /////////////////////////////////////////////// // Actions, connected with server communication