From e9cc0d8eeb52e0f04fc466d8be75557cb910ef0b Mon Sep 17 00:00:00 2001 From: Tamius Han Date: Fri, 23 Nov 2018 00:29:13 +0100 Subject: [PATCH] fix tabitem saving --- js/lib/Comms.js | 4 ++-- js/uw-bg.js | 8 +++++++- res/popup/js/popup.js | 6 +++++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/js/lib/Comms.js b/js/lib/Comms.js index b223746..bfe0644 100644 --- a/js/lib/Comms.js +++ b/js/lib/Comms.js @@ -309,8 +309,8 @@ class CommsServer { if (message.cmd === 'get-current-site') { port.postMessage({cmd: 'set-current-site', site: this.server.getVideoTab(), tabHostname: await this.getCurrentTabHostname()}); } - if (message.cmd === 'set-selected-tab') { - this.server.setSelectedTab(cmd.selectedMenu, cmd.selectedSubitem); + if (message.cmd === 'popup-set-selected-tab') { + this.server.setSelectedTab(message.selectedMenu, message.selectedSubitem); } if (message.cmd === 'get-config') { diff --git a/js/uw-bg.js b/js/uw-bg.js index 1c0f25f..62b5faf 100644 --- a/js/uw-bg.js +++ b/js/uw-bg.js @@ -203,6 +203,9 @@ class UWServer { } setSelectedTab(menu, subitem) { + if (Debug.debug && Debug.comms) { + console.log("[uw-bg::setSelectedTab] saving selected tab for", menu, ":", subitem) + } this.selectedSubitem[menu] = subitem; } @@ -210,7 +213,10 @@ class UWServer { // friendly reminder: if current tab doesn't have a video, // there won't be anything in this.videoTabs[this.currentTabId] if (this.videoTabs[this.currentTabId]) { - return this.videoTabs[this.currentTabId]; + return { + ...this.videoTabs[this.currentTabId], + selected: this.selectedSubitem + }; } // return something more or less empty if this tab doesn't have diff --git a/res/popup/js/popup.js b/res/popup/js/popup.js index d137689..9479223 100644 --- a/res/popup/js/popup.js +++ b/res/popup/js/popup.js @@ -62,7 +62,7 @@ function loadFrames(videoTab) { function onTabitemClick(item) { tablist[selectedMenu].selectSubitem(item); selectedSubitem[selectedMenu] = item; - port.postMessage({cmd: 'select-tab', selectedMenu: selectedMenu, selectedSubitem: item}); + port.postMessage({cmd: 'popup-set-selected-tab', selectedMenu: selectedMenu, selectedSubitem: item}); } for (var option of [{id: '__playing', label: 'Currently playing'}, {id: '__all', label: 'All'}]) { @@ -98,11 +98,13 @@ function loadFrames(videoTab) { if (! selectedSubitem.siteSettings || !tablist['siteSettings'].existsSubitem(selectedSubitem.siteSettings)) { selectedSubitem['siteSettings'] = tablist['siteSettings'].selectFirstSubitem(); + console.log("selected first subitem!") } else { tablist['siteSettings'].selectSubitem(selectedSubitem.siteSettings) } if (! selectedSubitem.videoSettings || !tablist['videoSettings'].existsSubitem(selectedSubitem.videoSettings)) { selectedSubitem['videoSettings'] = tablist['videoSettings'].selectFirstSubitem(); + console.log("selected first subitem (vs)!") } else { tablist['videoSettings'].selectSubitem(selectedSubitem.videoSettings); } @@ -760,6 +762,8 @@ document.addEventListener("click", (e) => { } var command = getcmd(e); + if (!command) + return; command.targetFrame = selectedSubitem[selectedMenu] if(Debug.debug) {