mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 22:13:26 +00:00
keydown_util: Ignore alt-arrow and similar things.
We ignore keystrokes like alt-left-arrow and alt-right-arrow, so that the browser can do back/forward. We may need to refine the handling of ctrl/alt/shift in the future, but now we only support single-key operations.
This commit is contained in:
@@ -3,24 +3,35 @@ set_global('$', global.make_zjquery());
|
|||||||
zrequire('keydown_util');
|
zrequire('keydown_util');
|
||||||
|
|
||||||
run_test('test_early_returns', () => {
|
run_test('test_early_returns', () => {
|
||||||
var stub = $.create('stub');
|
const stub = $.create('stub');
|
||||||
var opts = {
|
const opts = {
|
||||||
elem: stub,
|
elem: stub,
|
||||||
handlers: {},
|
handlers: {
|
||||||
|
left_arrow: () => {
|
||||||
|
throw Error('do not dispatch this with alt key');
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
keydown_util.handle(opts);
|
keydown_util.handle(opts);
|
||||||
var keydown_f = stub.keydown;
|
const keydown_f = stub.keydown;
|
||||||
|
|
||||||
var e1 = {
|
const e1 = {
|
||||||
which: 17, // not in keys
|
which: 17, // not in keys
|
||||||
};
|
};
|
||||||
|
|
||||||
keydown_f(e1);
|
keydown_f(e1);
|
||||||
|
|
||||||
var e2 = {
|
const e2 = {
|
||||||
which: 13, // no handler
|
which: 13, // no handler
|
||||||
};
|
};
|
||||||
|
|
||||||
keydown_f(e2);
|
keydown_f(e2);
|
||||||
|
|
||||||
|
const e3 = {
|
||||||
|
which: 37,
|
||||||
|
altKey: true, // let browser handle
|
||||||
|
};
|
||||||
|
|
||||||
|
keydown_f(e3);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -18,6 +18,10 @@ exports.handle = function (opts) {
|
|||||||
opts.elem.keydown(function (e) {
|
opts.elem.keydown(function (e) {
|
||||||
var key = e.which || e.keyCode;
|
var key = e.which || e.keyCode;
|
||||||
|
|
||||||
|
if (e.altKey || e.ctrlKey || e.shiftKey) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var key_name = keys[key];
|
var key_name = keys[key];
|
||||||
|
|
||||||
if (!key_name) {
|
if (!key_name) {
|
||||||
|
|||||||
Reference in New Issue
Block a user