[READ-ONLY] Mirror of https://github.com/probablykasper/ferrum. Music library app for Mac, Linux and Windows ferrum.kasper.space
electron linux macos music music-library music-player napi windows
0

Configure Feed

Select the types of activity you want to include in your feed.

Fix scroll shortcuts

Kasper (May 27, 2025, 9:38 AM +0200) 6beb99eb 99831bbe

+15 -2
+15 -2
src/components/TrackList.svelte
··· 39 39 import { onDestroy, onMount } from 'svelte' 40 40 import { dragged } from '../lib/drag-drop' 41 41 import * as dragGhost from './DragGhost.svelte' 42 - import VirtualListBlock, { scroll_container_keydown } from './VirtualListBlock.svelte' 43 42 import type { ItemId, Track, TracksPage } from 'ferrum-addon/addon' 44 43 import Cover from './Cover.svelte' 45 44 import Header from './Header.svelte' ··· 138 137 if (result.response === 0) { 139 138 delete_tracks_with_item_ids(item_ids) 140 139 } 140 + } 141 + function scroll_container_keydown(e: KeyboardEvent & { currentTarget: HTMLElement }) { 142 + let prevent = true 143 + const scroll_area = e.currentTarget.querySelector('.vertical-inner.scroll-rgRow') 144 + if (!scroll_area) return 145 + if (e.key === 'Home') scroll_area.scrollTop = 0 146 + else if (e.key === 'End') scroll_area.scrollTop = scroll_area.scrollHeight 147 + else if (e.key === 'PageUp') scroll_area.scrollTop -= scroll_area.clientHeight 148 + else if (e.key === 'PageDown') scroll_area.scrollTop += scroll_area.clientHeight 149 + else prevent = false 150 + if (prevent) e.preventDefault() 141 151 } 142 152 // async function keydown(e: KeyboardEvent) { 143 153 // if (check_shortcut(e, 'Enter')) { ··· 464 474 columns = load_columns() 465 475 }} 466 476 /> 477 + <!-- svelte-ignore a11y_no_static_element_interactions --> 467 478 <div 468 479 bind:this={container_el} 469 480 class="grow" 470 481 {@attach (element) => { 471 482 element.appendChild(grid) 483 + }} 484 + onkeydown={(e) => { 485 + scroll_container_keydown(e) 472 486 }} 473 487 ></div> 474 488 ··· 525 539 class="main-focus-element relative h-full overflow-y-auto outline-none" 526 540 tabindex="0" 527 541 on:mousedown|self={() => selection.clear()} 528 - on:keydown={scroll_container_keydown} 529 542 on:keydown={keydown} 530 543 > 531 544 <VirtualListBlock