Skip to content

Commit b70a91c

Browse files
committed
Closes #1000
1 parent e9577d5 commit b70a91c

File tree

12 files changed

+114
-0
lines changed

12 files changed

+114
-0
lines changed

src/chrome/css/content-script.css

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,12 @@ html[super-theater] #page-manager.ytd-app:has( > [theater]:not([hidden])) ytd-li
109109
}
110110
/* end | super theater */
111111

112+
/* ini | super theater scrollbar */
113+
html[super-theater][super-theater-scrollbar]:has( ytd-watch-flexy[theater]:not([hidden])) {
114+
scrollbar-width: none;
115+
}
116+
/* end | super theater scrollbar */
117+
112118
/* ini | hide end screen cards */
113119
.iridium-hide-end-screen-cards #movie_player:hover .ytp-ce-element:not(:hover) {
114120
opacity: 0;

src/chrome/html/options.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -489,6 +489,16 @@
489489
<div class="settingDescription">Switching to theater mode will make the player cover the full browser while allowing the page to be scrolled</div>
490490
</div>
491491
</div>
492+
<div class="setting" data-id="superTheaterScrollbar">
493+
<label class="switch">
494+
<input data-setting="superTheaterScrollbar" type="checkbox">
495+
<span class="slider"></span>
496+
</label>
497+
<div class="settingDescription">
498+
<div class="settingDescription highlight">Show super theater scrollbar</div>
499+
<div class="settingDescription">Controls the vertical scrollbar visibility while in super theater mode</div>
500+
</div>
501+
</div>
492502
<div class="setting" data-id="alwaysVisible">
493503
<label class="switch">
494504
<input data-setting="alwaysVisible" type="checkbox">

src/chrome/js/background-inject.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1121,6 +1121,22 @@ function mainScript(extensionId, SettingData, defaultSettings) {
11211121

11221122
})();
11231123

1124+
const FeatureSuperTheaterScrollbar = (() => {
1125+
1126+
const update = () => {
1127+
if (iridiumSettings.superTheaterScrollbar) {
1128+
document.documentElement.removeAttribute("super-theater-scrollbar");
1129+
} else {
1130+
document.documentElement.setAttribute("super-theater-scrollbar", "");
1131+
}
1132+
}
1133+
1134+
FeatureUpdater.register(SettingData.superTheaterScrollbar.id, update);
1135+
1136+
return {};
1137+
1138+
})();
1139+
11241140
const FeatureAlwaysVisible = (() => {
11251141

11261142
let moviePlayer = null;

src/chrome/js/chrome-wrapper.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,10 @@
110110
id: "superTheater",
111111
default: true,
112112
},
113+
superTheaterScrollbar: {
114+
id: "superTheaterScrollbar",
115+
default: true,
116+
},
113117
defaultQuality: {
114118
id: "defaultQuality",
115119
default: "auto",

src/chrome/js/content-script.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,10 @@ const SettingData = {
107107
id: "superTheater",
108108
default: true,
109109
},
110+
superTheaterScrollbar: {
111+
id: "superTheaterScrollbar",
112+
default: true,
113+
},
110114
defaultQuality: {
111115
id: "defaultQuality",
112116
default: "auto",

src/chrome/js/options.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,20 @@ const Manager = {
337337

338338
Util.updateSingleSetting(settingId, newState);
339339

340+
},
341+
updateSuperTheaterScrollbar: (newState, userInteraction) => {
342+
343+
const settingId = SettingData.superTheaterScrollbar.id;
344+
const ui = document.querySelector(`[data-setting=${settingId}]`);
345+
346+
if (ui != null && ui.checked !== newState) {
347+
ui.checked = newState;
348+
}
349+
350+
if (!userInteraction) return;
351+
352+
Util.updateSingleSetting(settingId, newState);
353+
340354
},
341355
updateAutoplay: (newState, userInteraction) => {
342356

@@ -811,6 +825,9 @@ const Util = {
811825
case SettingData.superTheater.id:
812826
Manager.updateSuperTheater(value, userInteraction);
813827
break;
828+
case SettingData.superTheaterScrollbar.id:
829+
Manager.updateSuperTheaterScrollbar(value, userInteraction);
830+
break;
814831
case SettingData.defaultQuality.id:
815832
Manager.updateDefaultQuality(value, userInteraction);
816833
break;

src/chrome/js/setting-data.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,10 @@ const SettingData = {
103103
id: "superTheater",
104104
default: true,
105105
},
106+
superTheaterScrollbar: {
107+
id: "superTheaterScrollbar",
108+
default: true,
109+
},
106110
defaultQuality: {
107111
id: "defaultQuality",
108112
default: "auto",

src/firefox/css/content-script.css

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,12 @@ html[super-theater] #page-manager.ytd-app:has( > [theater]:not([hidden])) ytd-li
109109
}
110110
/* end | super theater */
111111

112+
/* ini | super theater scrollbar */
113+
html[super-theater][super-theater-scrollbar]:has( ytd-watch-flexy[theater]:not([hidden])) {
114+
scrollbar-width: none;
115+
}
116+
/* end | super theater scrollbar */
117+
112118
/* ini | hide end screen cards */
113119
.iridium-hide-end-screen-cards #movie_player:hover .ytp-ce-element:not(:hover) {
114120
opacity: 0;

src/firefox/html/options.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -489,6 +489,16 @@
489489
<div class="settingDescription">Switching to theater mode will make the player cover the full browser while allowing the page to be scrolled</div>
490490
</div>
491491
</div>
492+
<div class="setting" data-id="superTheaterScrollbar">
493+
<label class="switch">
494+
<input data-setting="superTheaterScrollbar" type="checkbox">
495+
<span class="slider"></span>
496+
</label>
497+
<div class="settingDescription">
498+
<div class="settingDescription highlight">Show super theater scrollbar</div>
499+
<div class="settingDescription">Controls the vertical scrollbar visibility while in super theater mode</div>
500+
</div>
501+
</div>
492502
<div class="setting" data-id="alwaysVisible">
493503
<label class="switch">
494504
<input data-setting="alwaysVisible" type="checkbox">

src/firefox/js/background-inject.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1121,6 +1121,22 @@ function mainScript(extensionId, SettingData, defaultSettings) {
11211121

11221122
})();
11231123

1124+
const FeatureSuperTheaterScrollbar = (() => {
1125+
1126+
const update = () => {
1127+
if (iridiumSettings.superTheaterScrollbar) {
1128+
document.documentElement.removeAttribute("super-theater-scrollbar");
1129+
} else {
1130+
document.documentElement.setAttribute("super-theater-scrollbar", "");
1131+
}
1132+
}
1133+
1134+
FeatureUpdater.register(SettingData.superTheaterScrollbar.id, update);
1135+
1136+
return {};
1137+
1138+
})();
1139+
11241140
const FeatureAlwaysVisible = (() => {
11251141

11261142
let moviePlayer = null;

0 commit comments

Comments
 (0)