ReplyBox: Post reply upon pressing Command-Enter on Mac

Command-Enter doesn't seem to fire a keypress on Mac, so handle the
keydown instead.

Change-Id: Ie9e6633497391332eeb469539b89039edfa9df75
This commit is contained in:
Michael Zhou
2016-01-05 22:00:46 -05:00
committed by David Pursehouse
parent 58bc023866
commit b3ba766ffa

View File

@@ -15,6 +15,7 @@
package com.google.gerrit.client.change;
import static com.google.gwt.event.dom.client.KeyCodes.KEY_ENTER;
import static com.google.gwt.event.dom.client.KeyCodes.KEY_MAC_ENTER;
import com.google.gerrit.client.Gerrit;
import com.google.gerrit.client.changes.ChangeApi;
@@ -43,8 +44,8 @@ import com.google.gwt.core.client.Scheduler.ScheduledCommand;
import com.google.gwt.dom.client.Element;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.KeyPressEvent;
import com.google.gwt.event.dom.client.KeyPressHandler;
import com.google.gwt.event.dom.client.KeyDownEvent;
import com.google.gwt.event.dom.client.KeyDownHandler;
import com.google.gwt.event.dom.client.MouseOutEvent;
import com.google.gwt.event.dom.client.MouseOutHandler;
import com.google.gwt.event.dom.client.MouseOverEvent;
@@ -123,12 +124,13 @@ public class ReplyBox extends Composite {
}
addDomHandler(
new KeyPressHandler() {
new KeyDownHandler() {
@Override
public void onKeyPress(KeyPressEvent e) {
public void onKeyDown(KeyDownEvent e) {
e.stopPropagation();
if ((e.getCharCode() == '\n' || e.getCharCode() == KEY_ENTER)
&& e.isControlKeyDown()) {
if ((e.getNativeKeyCode() == KEY_ENTER
|| e.getNativeKeyCode() == KEY_MAC_ENTER)
&& (e.isControlKeyDown() || e.isMetaKeyDown())) {
e.preventDefault();
if (post.isEnabled()) {
onPost(null);
@@ -136,7 +138,7 @@ public class ReplyBox extends Composite {
}
}
},
KeyPressEvent.getType());
KeyDownEvent.getType());
}
@Override