Files
tubestation/waterfox/browser/components/sidebar/background/auto-sticky-tabs.js
2025-11-06 14:13:52 +00:00

67 lines
1.6 KiB
JavaScript

/*
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
'use strict';
import {
configs,
} from '/common/common.js';
import * as Constants from '/common/constants.js';
import { Tab } from '/common/TreeItem.js';
configs.$addObserver(key => {
switch (key) {
case 'stickyActiveTab':
updateAutoStickyActive();
break;
case 'stickySoundPlayingTab':
updateAutoStickySoundPlaying();
break;
case 'stickySharingTab':
updateAutoStickySharing();
break;
default:
break;
}
});
configs.$loaded.then(() => {
updateAutoStickyActive();
updateAutoStickySoundPlaying();
updateAutoStickySharing();
});
function updateAutoStickyActive() {
if (configs.stickyActiveTab)
Tab.registerAutoStickyState(Constants.kTAB_STATE_ACTIVE);
else
Tab.unregisterAutoStickyState(Constants.kTAB_STATE_ACTIVE);
}
function updateAutoStickySoundPlaying() {
if (configs.stickySoundPlayingTab)
Tab.registerAutoStickyState(Constants.kTAB_STATE_SOUND_PLAYING);
else
Tab.unregisterAutoStickyState(Constants.kTAB_STATE_SOUND_PLAYING);
}
function updateAutoStickySharing() {
if (configs.stickySharingTab)
Tab.registerAutoStickyState([
Constants.kTAB_STATE_SHARING_CAMERA,
Constants.kTAB_STATE_SHARING_MICROPHONE,
Constants.kTAB_STATE_SHARING_SCREEN,
]);
else
Tab.unregisterAutoStickyState([
Constants.kTAB_STATE_SHARING_CAMERA,
Constants.kTAB_STATE_SHARING_MICROPHONE,
Constants.kTAB_STATE_SHARING_SCREEN,
]);
}