@@ -5,7 +5,7 @@ import { findTime } from './components/htmlhelper';
55import createQueueButton , { toggleQueueButton } from './components/queue' ;
66import createSpeedDial from './components/speeddial' ;
77import attachVolumeText , { toggleVolumeShow } from './components/volume' ;
8- import { init as initDispatch , loadPrefix } from './dispatcher' ;
8+ import { init as initDispatch , loadPrefix , navigatePrefix } from './dispatcher' ;
99import { Message , arrFromLengthy , getFromStorage , notification , onStorageChange , parseTypeObject , replyMessage , sendMessage } from './sharedpage' ;
1010
1111export type Player = HTMLVideoElement & { _enhancerInit : boolean ; } ;
@@ -23,6 +23,7 @@ const optionsDefaults = {
2323 playerSettings : { } as Partial < Settings > ,
2424} ;
2525let options = { ...optionsDefaults } ;
26+ let lastPositon : number | undefined = undefined ;
2627const msgs : Record < string , string > = { } ;
2728
2829type Msg = { type : string , name ?: string , [ key : string ] : any ; } ;
@@ -59,6 +60,7 @@ export const init = async () => {
5960 document . addEventListener ( 'wheel' , wheelHandler , { passive : false } ) ;
6061 document . addEventListener ( 'pointerup' , clickHandler , { capture : true } ) ;
6162 document . addEventListener ( `${ loadPrefix } -video` , initPlayer ) ;
63+ document . addEventListener ( navigatePrefix , ( ) => lastPositon = undefined ) ;
6264 await initDispatch ( ) ;
6365
6466 msgs [ 'playerFrameBack' ] = await sendMessage ( Message . GET_MESSAGE , { message : 'playerFrameBack' } ) ;
@@ -255,12 +257,15 @@ const keydownHandler = (e: KeyboardEvent) => {
255257 break ;
256258 case '0' : case '1' : case '2' : case '3' : case '4' :
257259 case '5' : case '6' : case '7' : case '8' : case '9' :
260+ lastPositon = player . currentTime ;
258261 player . currentTime = player . duration * ( + pressedKey ) / 10 ;
259262 break ;
260263 case 'Home' :
264+ lastPositon = player . currentTime ;
261265 player . currentTime = 0 ;
262266 break ;
263267 case 'End' :
268+ lastPositon = player . currentTime ;
264269 player . currentTime = player . duration ;
265270 break ;
266271 case '<' :
@@ -283,6 +288,9 @@ const keydownHandler = (e: KeyboardEvent) => {
283288 case 'p' :
284289 sendMessage ( Message . QUEUE_PREV , null , false ) ;
285290 break ;
291+ case 'u' :
292+ if ( lastPositon != undefined ) player . currentTime = lastPositon ;
293+ break ;
286294 default :
287295 return ;
288296 }
0 commit comments