diff --git a/services/web/app/views/layout/language-picker.pug b/services/web/app/views/layout/language-picker.pug index 8b9cf73135..70daf1ccd1 100644 --- a/services/web/app/views/layout/language-picker.pug +++ b/services/web/app/views/layout/language-picker.pug @@ -37,17 +37,19 @@ li.language-picker '&return_to=' + encodeURIComponent(window.location.pathname) }) + var picker = toggle.closest('.language-picker') function close() { menu.classList.remove('show') toggle.setAttribute('aria-expanded', 'false') } - toggle.addEventListener('click', function (e) { - e.stopPropagation() + toggle.addEventListener('click', function () { var opening = !menu.classList.contains('show') menu.classList.toggle('show', opening) toggle.setAttribute('aria-expanded', String(opening)) }) - document.addEventListener('click', close) + document.addEventListener('click', function (e) { + if (!picker || !picker.contains(e.target)) close() + }) document.addEventListener('keydown', function (e) { if (e.key === 'Escape') { close(); toggle.focus() } }) diff --git a/services/web/frontend/js/features/ide-react/components/layout/main-layout.tsx b/services/web/frontend/js/features/ide-react/components/layout/main-layout.tsx index a14f82b6ee..04ceaffab6 100644 --- a/services/web/frontend/js/features/ide-react/components/layout/main-layout.tsx +++ b/services/web/frontend/js/features/ide-react/components/layout/main-layout.tsx @@ -80,8 +80,9 @@ export default function MainLayout() { URL.revokeObjectURL(url), 10000) } catch (err) { if (requestId !== requestIdRef.current) return setExporting(null) @@ -144,7 +145,7 @@ const DownloadPresentationButtonTooltip = memo( return ( {(startExport, exporting) => ( - + )} - +