mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +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');
 | 
			
		||||
 | 
			
		||||
run_test('test_early_returns', () => {
 | 
			
		||||
    var stub = $.create('stub');
 | 
			
		||||
    var opts = {
 | 
			
		||||
    const stub = $.create('stub');
 | 
			
		||||
    const opts = {
 | 
			
		||||
        elem: stub,
 | 
			
		||||
        handlers: {},
 | 
			
		||||
        handlers: {
 | 
			
		||||
            left_arrow: () => {
 | 
			
		||||
                throw Error('do not dispatch this with alt key');
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    keydown_util.handle(opts);
 | 
			
		||||
    var keydown_f = stub.keydown;
 | 
			
		||||
    const keydown_f = stub.keydown;
 | 
			
		||||
 | 
			
		||||
    var e1 = {
 | 
			
		||||
    const e1 = {
 | 
			
		||||
        which: 17, // not in keys
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    keydown_f(e1);
 | 
			
		||||
 | 
			
		||||
    var e2 = {
 | 
			
		||||
    const e2 = {
 | 
			
		||||
        which: 13, // no handler
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    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) {
 | 
			
		||||
        var key = e.which || e.keyCode;
 | 
			
		||||
 | 
			
		||||
        if (e.altKey || e.ctrlKey || e.shiftKey) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        var key_name = keys[key];
 | 
			
		||||
 | 
			
		||||
        if (!key_name) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user