Prevent rollover on keyboard left swipe if repeating

Closes #3636
This commit is contained in:
Cohee
2025-03-09 13:42:30 +02:00
parent b52b11d7bb
commit 6aaa533410
2 changed files with 15 additions and 3 deletions

View File

@@ -8746,11 +8746,18 @@ function formatSwipeCounter(current, total) {
return `${current}\u200b/\u200b${total}`;
}
function swipe_left() { // when we swipe left..but no generation.
/**
* Handles the swipe to the left event.
* @param {JQuery.Event} _event Event.
* @param {object} params Additional parameters.
* @param {string} [params.source] The source of the swipe event.
* @param {boolean} [params.repeated] Is the swipe event repeated.
* @returns
*/
function swipe_left(_event, { source, repeated } = {}) { // when we swipe left..but no generation.
if (chat.length - 1 === Number(this_edit_mes_id)) {
closeMessageEditor();
}
if (isStreamingEnabled() && streamingProcessor) {
streamingProcessor.onStopStreaming();
}
@@ -8758,6 +8765,11 @@ function swipe_left() { // when we swipe left..but no generation.
// Make sure ad-hoc changes to extras are saved before swiping away
syncMesToSwipe();
if (source === 'keyboard' && repeated && chat[chat.length - 1].swipe_id === 0) {
// If the user is holding down the key and we're at the first swipe, don't do anything
return;
}
const swipe_duration = 120;
const swipe_range = '700px';
chat[chat.length - 1]['swipe_id']--;