diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html
index b7295b898f..794efe0640 100644
--- a/phpBB/docs/CHANGELOG.html
+++ b/phpBB/docs/CHANGELOG.html
@@ -194,6 +194,7 @@
[Fix] Update search index if only post subject changed. (Bug #49435)
[Fix] Fix who is online displaying incorrect data. (Bug #49485, thanks Brainy)
[Fix] Fixed incorrect "topic does not exist" when unapproved posts were visited without global moderator permissions. (Bug #47795)
+ [Fix] Prevent style switcher from blocking the tab key. (Bug #49335)
[Change] submit_post() now accepts force_approved_state key passed to $data to indicate new posts being approved (true) or unapproved (false).
[Change] Change the data format of the default file ACM to be more secure from tampering and have better performance.
[Change] Add index on log_time to the log table to prevent slowdown on boards with many log entries. (Bug #44665 - Patch by bantu)
diff --git a/phpBB/styles/prosilver/template/overall_header.html b/phpBB/styles/prosilver/template/overall_header.html
index 9d4162591a..1ec9041b49 100644
--- a/phpBB/styles/prosilver/template/overall_header.html
+++ b/phpBB/styles/prosilver/template/overall_header.html
@@ -136,7 +136,7 @@
- {L_INDEX} ‹ {navlinks.FORUM_NAME}
- - {L_CHANGE_FONT_SIZE}
+ - {L_CHANGE_FONT_SIZE}
- {L_EMAIL_TOPIC}
- {L_EMAIL_PM}
diff --git a/phpBB/styles/prosilver/template/styleswitcher.js b/phpBB/styles/prosilver/template/styleswitcher.js
index 203d8e4c21..b6ba1ecdae 100644
--- a/phpBB/styles/prosilver/template/styleswitcher.js
+++ b/phpBB/styles/prosilver/template/styleswitcher.js
@@ -1,6 +1,12 @@
-function fontsizeup()
+function fontsizeup(event)
{
+ // Skip tabs
+ if (event && getKeyCode(event) == 9)
+ {
+ return true;
+ }
+
var active = getActiveStyleSheet();
switch (active)
@@ -29,11 +35,19 @@ function fontsizeup()
setActiveStyleSheet('A');
break;
}
+
+ return false;
}
-function fontsizedown()
+function fontsizedown(event)
{
- active = getActiveStyleSheet();
+ // Skip tabs
+ if (event && getKeyCode(event) == 9)
+ {
+ return true;
+ }
+
+ var active = getActiveStyleSheet();
switch (active)
{
@@ -60,6 +74,24 @@ function fontsizedown()
setActiveStyleSheet('A--');
break;
}
+
+ return false;
+}
+
+function getKeyCode(event)
+{
+ // IE doesn't fire the onkeypress event for tabs
+ // Reference: http://www.quirksmode.org/js/keys.html
+
+ var code = (event.keyCode) ? event.keyCode : 0;
+
+ // Probably using FF
+ if (!code && event.charCode)
+ {
+ code = event.charCode;
+ }
+
+ return code;
}
function setActiveStyleSheet(title)