diff --git a/src/Symfony/Bundle/TwigBundle/Resources/views/base_js.html.twig b/src/Symfony/Bundle/TwigBundle/Resources/views/base_js.html.twig index d85d2e0ea3..4ce8013c44 100644 --- a/src/Symfony/Bundle/TwigBundle/Resources/views/base_js.html.twig +++ b/src/Symfony/Bundle/TwigBundle/Resources/views/base_js.html.twig @@ -478,6 +478,11 @@ addEventListener(toggles[i], 'click', function(e) { e.preventDefault(); + if ('' !== window.getSelection().toString()) { + /* Don't do anything on text selection */ + return; + } + var toggle = e.target || e.srcElement; /* needed because when the toggle contains HTML contents, user can click */ @@ -507,6 +512,14 @@ var altContent = toggle.getAttribute('data-toggle-alt-content'); toggle.innerHTML = currentContent !== altContent ? altContent : originalContent; }); + + /* Prevents from disallowing clicks on links inside toggles */ + var toggleLinks = document.querySelectorAll('.sf-toggle a'); + for (var i = 0; i < toggleLinks.length; i++) { + addEventListener(toggleLinks[i], 'click', function(e) { + e.stopPropagation(); + }); + } } } }; diff --git a/src/Symfony/Bundle/TwigBundle/Resources/views/exception.css.twig b/src/Symfony/Bundle/TwigBundle/Resources/views/exception.css.twig index 4f553f20df..1c8c76e78d 100644 --- a/src/Symfony/Bundle/TwigBundle/Resources/views/exception.css.twig +++ b/src/Symfony/Bundle/TwigBundle/Resources/views/exception.css.twig @@ -89,7 +89,6 @@ header .container { display: flex; justify-content: space-between; } .exception-illustration { flex-basis: 111px; flex-shrink: 0; height: 66px; margin-left: 15px; opacity: .7; } .trace + .trace { margin-top: 30px; } -.trace-head { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .trace-head .trace-class { color: #222; font-size: 18px; font-weight: bold; line-height: 1.3; margin: 0; position: relative; } .trace-head .trace-namespace { color: #999; display: block; font-size: 13px; } .trace-head .icon { position: absolute; right: 0; top: 0; } diff --git a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/base_js.html.twig b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/base_js.html.twig index 79da38a230..b5f08f8691 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/base_js.html.twig +++ b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/base_js.html.twig @@ -478,6 +478,11 @@ addEventListener(toggles[i], 'click', function(e) { e.preventDefault(); + if ('' !== window.getSelection().toString()) { + /* Don't do anything on text selection */ + return; + } + var toggle = e.target || e.srcElement; /* needed because when the toggle contains HTML contents, user can click */ @@ -508,6 +513,14 @@ toggle.innerHTML = currentContent !== altContent ? altContent : originalContent; }); } + + /* Prevents from disallowing clicks on links inside toggles */ + var toggleLinks = document.querySelectorAll('.sf-toggle a'); + for (var i = 0; i < toggleLinks.length; i++) { + addEventListener(toggleLinks[i], 'click', function(e) { + e.stopPropagation(); + }); + } } }; })(); diff --git a/src/Symfony/Component/Debug/ExceptionHandler.php b/src/Symfony/Component/Debug/ExceptionHandler.php index 1fe60d9f31..5c399ef089 100644 --- a/src/Symfony/Component/Debug/ExceptionHandler.php +++ b/src/Symfony/Component/Debug/ExceptionHandler.php @@ -316,7 +316,6 @@ EOF; .exception-illustration { flex-basis: 111px; flex-shrink: 0; height: 66px; margin-left: 15px; opacity: .7; } .trace + .trace { margin-top: 30px; } - .trace-head { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .trace-head .trace-class { color: #222; font-size: 18px; font-weight: bold; line-height: 1.3; margin: 0; position: relative; } .trace-message { font-size: 14px; font-weight: normal; margin: .5em 0 0; }