Add ctrl+s as keyboard shortcut to save comment draft Shortcut only functions while editing the actual text area of the comment. This makes sense, as one should have to save each individual comment as a draft. This also mimics the current behavior of GWT UI. Bug: Issue 3848 Change-Id: I7037d3dbdc5dae3048fcae580ed09c41e54f0669
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment.js b/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment.js index 1b30bde..07badbf 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment.js +++ b/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment.js
@@ -198,8 +198,15 @@ }, _handleTextareaKeydown: function(e) { - if (e.keyCode == 27) { // 'esc' - this._handleCancel(e); + switch (e.keyCode) { + case 27: // 'esc' + this._handleCancel(e); + break; + case 83: // 's' + if (e.ctrlKey) { + this._handleSave(e); + } + break; } },
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment_test.html b/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment_test.html index fcf8b41..bddc3ab 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment_test.html +++ b/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment_test.html
@@ -211,6 +211,18 @@ MockInteractions.pressAndReleaseKeyOn(element.$.editTextarea, 27); // esc }); + test('ctrl+s saves comment', function(done) { + var stub = sinon.stub(element, 'save', function() { + assert.isTrue(stub.called); + stub.restore(); + done(); + }); + element._messageText = 'is that the horse from horsing around??'; + MockInteractions.pressAndReleaseKeyOn( + element.$.editTextarea.textarea, + 83, 'ctrl'); // 'ctrl + s' + }); + test('draft saving/editing', function(done) { var fireStub = sinon.stub(element, 'fire');