This commit is contained in:
		
							parent
							
								
									f7d776e4da
								
							
						
					
					
						commit
						94f9ebc80c
					
				|  | @ -443,24 +443,14 @@ const prepend = (item: MisskeyEntity): void => { | |||
| 
 | ||||
| 	if ( | ||||
| 		!isPausingUpdateByExecutingQueue.value && // スクロール調整中はキューに追加する | ||||
| 		visibility.value !== 'hidden' && // バックグラウンドの場合はキューに追加する | ||||
| 		queueSize.value === 0 && // キューに残っている場合はキューに追加する | ||||
| 		active.value // keepAliveで隠されている間はキューに追加する | ||||
| 	) { | ||||
| 		if (!backed) { | ||||
| 			// かなりスクロールの先頭にいる場合 | ||||
| 			if (items.value.has(item.id)) return; // 既にタイムラインにある場合は何もしない | ||||
| 			if (visibility.value === 'hidden') { | ||||
| 				// バックグラウンドかつスクロールの先頭にいる場合は | ||||
| 				// prependQueueしつつちょっと特殊な処理を挟む… | ||||
| 				// (Safariのスクロールの仕様が良くなればunshiftItemsにしたいところ) | ||||
| 				prependQueue(item); | ||||
| 				// スクロールを進めておくことで復帰時にスクロールを進めないでよくなる | ||||
| 				scrollBy(scrollableElement, { top: 24, behavior: 'instant' }); | ||||
| 				// 一応backedを強制的にtrueにする | ||||
| 				backed = true; | ||||
| 			} else { | ||||
| 				unshiftItems([item]); | ||||
| 			} | ||||
| 			unshiftItems([item]); | ||||
| 		} else if (!weakBacked) { | ||||
| 			// ちょっと先頭にいる場合はスクロールを調整する | ||||
| 			prependQueue(item); | ||||
|  | @ -503,6 +493,15 @@ async function executeQueue() { | |||
| 	const queueArr = Array.from(queue.value.entries()); | ||||
| 	queue.value = new Map(queueArr.slice(props.pagination.limit)); | ||||
| 	isPausingUpdateByExecutingQueue.value = true; | ||||
| 	if (!backed) { | ||||
| 		// スクロールが先頭の場合 | ||||
| 		// スクロールを進めることでChromeやFirefoxはいい感じにスクロールを調整してくれる | ||||
| 		scrollBy(scrollableElement, { top: 24, behavior: 'instant' }); | ||||
| 		// 一応backedを強制的にtrueにする | ||||
| 		backed = true; | ||||
| 
 | ||||
| 		await nextTick(); | ||||
| 	} | ||||
| 	unshiftItems( | ||||
| 		queueArr.slice(0, props.pagination.limit).map(v => v[1]).reverse(), | ||||
| 		Infinity, | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue