mirror of
https://github.com/thelounge/thelounge
synced 2024-11-22 12:03:11 +00:00
Merge remote-tracking branch 'origin/pull/4231'
This commit is contained in:
commit
be3e27aa19
2 changed files with 49 additions and 0 deletions
|
@ -179,6 +179,26 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="help-item">
|
||||||
|
<div class="subject">
|
||||||
|
<span v-if="!isApple"><kbd>Alt</kbd> <kbd>Ctrl</kbd> <kbd>↓</kbd></span>
|
||||||
|
<span v-else><kbd>⌥</kbd> <kbd>⌘</kbd> <kbd>↓</kbd></span>
|
||||||
|
</div>
|
||||||
|
<div class="description">
|
||||||
|
<p>Switch to the next window with unread messages in the channel list.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="help-item">
|
||||||
|
<div class="subject">
|
||||||
|
<span v-if="!isApple"><kbd>Alt</kbd> <kbd>Ctrl</kbd> <kbd>↑</kbd></span>
|
||||||
|
<span v-else><kbd>⌥</kbd> <kbd>⌘</kbd> <kbd>↑</kbd></span>
|
||||||
|
</div>
|
||||||
|
<div class="description">
|
||||||
|
<p>Switch to the previous window with unread messages in the channel list.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="help-item">
|
<div class="help-item">
|
||||||
<div class="subject">
|
<div class="subject">
|
||||||
<span v-if="!isApple"><kbd>Alt</kbd> <kbd>A</kbd></span>
|
<span v-if="!isApple"><kbd>Alt</kbd> <kbd>A</kbd></span>
|
||||||
|
|
|
@ -83,6 +83,35 @@ Mousetrap.bind(["alt+shift+up", "alt+shift+down"], function (e, keys) {
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Switch to the next/previous unread chat
|
||||||
|
Mousetrap.bind(["alt+mod+up", "alt+mod+down"], function (e, keys) {
|
||||||
|
if (isIgnoredKeybind(e)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
const channels = store.state.networks
|
||||||
|
.map((net) =>
|
||||||
|
net.channels.filter(
|
||||||
|
(chan) => chan.unread || chan === store.state.activeChannel?.channel
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.flat();
|
||||||
|
|
||||||
|
if (channels.length === 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let index = channels.findIndex((chan) => chan === store.state.activeChannel?.channel);
|
||||||
|
|
||||||
|
const length = channels.length;
|
||||||
|
const direction = keys.split("+").pop() === "up" ? -1 : 1;
|
||||||
|
index = (((index + direction) % length) + length) % length;
|
||||||
|
|
||||||
|
jumpToChannel(channels[index]);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
// Jump to the first window with a highlight in it, or the first with unread
|
// Jump to the first window with a highlight in it, or the first with unread
|
||||||
// activity if there are none with highlights.
|
// activity if there are none with highlights.
|
||||||
Mousetrap.bind(["alt+a"], function (e) {
|
Mousetrap.bind(["alt+a"], function (e) {
|
||||||
|
|
Loading…
Reference in a new issue