Skip to content

Commit 2c8acf8

Browse files
committed
fix: dynamically update fullscreen tooltip (#6643)
Resolves the stale issue from PR #5732 where the Fullscreen tooltip did not update properly after state change. Uses window.jQuery to re-initialize tooltips instead of Materialize M.Tooltip which fits the current setup used in toolbar.js.
1 parent 023f92a commit 2c8acf8

2 files changed

Lines changed: 32 additions & 8 deletions

File tree

index.html

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1205,6 +1205,7 @@
12051205

12061206
function handleFullscreenChange() {
12071207
var iconCode = document.querySelector('#FullScrIcon');
1208+
var fullScreenBtn = document.querySelector('#FullScreen');
12081209
// Update fullscreen icon based on actual fullscreen state.
12091210
// This removes the need for a separate state variable and
12101211
// prevents incorrect icon state when fullscreen is toggled
@@ -1216,6 +1217,17 @@
12161217
document.msFullscreenElement;
12171218

12181219
iconCode.textContent = isFullscreen ? '\ue5d1' : '\ue5d0';
1220+
1221+
if (fullScreenBtn && typeof _ === 'function') {
1222+
var tooltipText = isFullscreen ? _("Exit Fullscreen") : _("Enter Fullscreen");
1223+
fullScreenBtn.setAttribute('data-tooltip', tooltipText);
1224+
if (window.jQuery) {
1225+
window.jQuery(fullScreenBtn).tooltip({
1226+
html: true,
1227+
delay: 100
1228+
});
1229+
}
1230+
}
12191231
}
12201232

12211233
document.addEventListener('fullscreenchange', handleFullscreenChange);
@@ -1289,6 +1301,7 @@
12891301

12901302
function handleFullscreenChange() {
12911303
var iconCode = document.querySelector("#FullScrIcon");
1304+
var fullScreenBtn = document.querySelector("#FullScreen");
12921305
// Update fullscreen icon based on actual fullscreen state.
12931306
// This removes the need for a separate state variable and
12941307
// prevents incorrect icon state when fullscreen is toggled
@@ -1300,6 +1313,17 @@
13001313
document.msFullscreenElement;
13011314

13021315
iconCode.textContent = isFullscreen ? "\ue5d1" : "\ue5d0";
1316+
1317+
if (fullScreenBtn && typeof _ === 'function') {
1318+
var tooltipText = isFullscreen ? _("Exit Fullscreen") : _("Enter Fullscreen");
1319+
fullScreenBtn.setAttribute("data-tooltip", tooltipText);
1320+
if (window.jQuery) {
1321+
window.jQuery(fullScreenBtn).tooltip({
1322+
html: true,
1323+
delay: 100
1324+
});
1325+
}
1326+
}
13031327
}
13041328

13051329
document.addEventListener("fullscreenchange", handleFullscreenChange);

js/toolbar.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ class Toolbar {
8383
["play", _("Play")],
8484
["stop", _("Stop")],
8585
["record", _("Record")],
86-
["Full screen", _("Full screen")],
87-
["FullScreen", _("Full screen")],
86+
["Full screen", _("Enter Fullscreen")],
87+
["FullScreen", _("Enter Fullscreen")],
8888
["Toggle Fullscreen", _("Toggle Fullscreen")],
8989
["newFile", _("New project")],
9090
["load", _("Load project from file")],
@@ -155,8 +155,8 @@ class Toolbar {
155155
_("Play"),
156156
_("Stop"),
157157
_("Record"),
158-
_("Full screen"),
159-
_("Full screen"),
158+
_("Enter Fullscreen"),
159+
_("Enter Fullscreen"),
160160
_("Toggle Fullscreen"),
161161
_("New project"),
162162
_("Load project from file"),
@@ -231,8 +231,8 @@ class Toolbar {
231231
["play", _("Play")],
232232
["stop", _("Stop")],
233233
["record", _("Record")],
234-
["Full screen", _("Full screen")],
235-
["FullScreen", _("Full screen")],
234+
["Full screen", _("Enter Fullscreen")],
235+
["FullScreen", _("Enter Fullscreen")],
236236
["Toggle Fullscreen", _("Toggle Fullscreen")],
237237
["newFile", _("New project")],
238238
["load", _("Load project from file")],
@@ -297,8 +297,8 @@ class Toolbar {
297297
_("Play"),
298298
_("Stop"),
299299
_("Record"),
300-
_("Full screen"),
301-
_("Full screen"),
300+
_("Enter Fullscreen"),
301+
_("Enter Fullscreen"),
302302
_("Toggle Fullscreen"),
303303
_("New project"),
304304
_("Load project from file"),

0 commit comments

Comments
 (0)