Merge pull request #3359 from plett/activity-shortcut

Add keybind for cycling to the next unread window
This commit is contained in:
Pavel Djundik 2019-08-09 20:29:05 +03:00 committed by GitHub
commit fc9e20c09d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 0 deletions

View File

@ -3,6 +3,7 @@
const $ = require("jquery");
const Mousetrap = require("mousetrap");
const utils = require("./utils");
const {vueApp} = require("./vue");
Mousetrap.bind(["alt+up", "alt+down"], function(e, keys) {
const sidebar = $("#sidebar");
@ -70,6 +71,31 @@ Mousetrap.bind(["alt+shift+up", "alt+shift+down"], function(e, keys) {
return false;
});
// Jump to the first window with a highlight in it, or the first with unread
// activity if there are none with highlights.
Mousetrap.bind(["alt+a"], function() {
let targetchan;
outer_loop: for (const network of vueApp.networks) {
for (const chan of network.channels) {
if (chan.highlight) {
targetchan = chan;
break outer_loop;
}
if (chan.unread && !targetchan) {
targetchan = chan;
}
}
}
if (targetchan) {
$(`#sidebar .chan[data-id="${targetchan.id}"]`).trigger("click");
}
return false;
});
// Ignored keys which should not automatically focus the input bar
const ignoredKeys = {
8: true, // Backspace

View File

@ -87,6 +87,16 @@
</div>
</div>
<div class="help-item">
<div class="subject">
<span class="key-all"><kbd>Alt</kbd> <kbd>A</kbd></span>
<span class="key-apple"><kbd>⌥</kbd> <kbd>A</kbd></span>
</div>
<div class="description">
<p>Switch to the first window with unread messages.</p>
</div>
</div>
<div class="help-item">
<div class="subject">
<span class="key-all"><kbd>Ctrl</kbd> <kbd>K</kbd></span>