diff --git a/public/script.js b/public/script.js index 3cd162c30..ee4d738b9 100644 --- a/public/script.js +++ b/public/script.js @@ -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']--; diff --git a/public/scripts/RossAscends-mods.js b/public/scripts/RossAscends-mods.js index 0a2581e5f..374e5fdef 100644 --- a/public/scripts/RossAscends-mods.js +++ b/public/scripts/RossAscends-mods.js @@ -1143,7 +1143,7 @@ export function initRossMods() { $('#shadow_select_chat_popup').css('display') === 'none' && !isInputElementInFocus() ) { - $('.swipe_left:last').click(); + $('.swipe_left:last').trigger('click', { source: 'keyboard', repeated: event.repeat }); return; } }