diff --git a/app/assets/javascripts/discourse/app/components/d-modal.gjs b/app/assets/javascripts/discourse/app/components/d-modal.gjs
index 0a83c77fa6f..fd6fa5164c1 100644
--- a/app/assets/javascripts/discourse/app/components/d-modal.gjs
+++ b/app/assets/javascripts/discourse/app/components/d-modal.gjs
@@ -158,6 +158,12 @@ export default class DModal extends Component {
this.closeModal(CLOSE_INITIATED_BY_SWIPE_DOWN);
}
+ @action
+ handleWrapperPointerDown(e) {
+ // prevents hamburger menu to close on modal backdrop click
+ e.stopPropagation();
+ }
+
@action
handleWrapperClick(e) {
if (e.button !== 0) {
@@ -396,6 +402,8 @@ export default class DModal extends Component {
enabled=this.dismissable
}}
{{on "click" this.handleWrapperClick}}
+ {{! template-lint-disable no-pointer-down-event-binding }}
+ {{on "pointerdown" this.handleWrapperPointerDown}}
>
{{/unless}}
diff --git a/app/assets/javascripts/discourse/app/components/header/hamburger-dropdown-wrapper.gjs b/app/assets/javascripts/discourse/app/components/header/hamburger-dropdown-wrapper.gjs
index 908e46d431e..c911d80fc19 100644
--- a/app/assets/javascripts/discourse/app/components/header/hamburger-dropdown-wrapper.gjs
+++ b/app/assets/javascripts/discourse/app/components/header/hamburger-dropdown-wrapper.gjs
@@ -12,7 +12,7 @@ import closeOnClickOutside from "../../modifiers/close-on-click-outside";
import SidebarHamburgerDropdown from "../sidebar/hamburger-dropdown";
const CLOSE_ON_CLICK_SELECTORS =
- "a[href], .sidebar-section-header-button, .sidebar-section-link-button, .sidebar-section-link";
+ "a[href], .sidebar-section-header-button, .sidebar-section-link:not(.--link-button)";
export default class HamburgerDropdownWrapper extends Component {
@service currentUser;
@@ -37,6 +37,10 @@ export default class HamburgerDropdownWrapper extends Component {
@action
clickOutside(e) {
+ if (e.target.closest(".sidebar-more-section-content")) {
+ return;
+ }
+
if (
e.target.classList.contains("header-cloak") &&
!prefersReducedMotion()
@@ -101,6 +105,7 @@ export default class HamburgerDropdownWrapper extends Component {
>
diff --git a/app/assets/javascripts/discourse/app/components/sidebar/anonymous/sections.gjs b/app/assets/javascripts/discourse/app/components/sidebar/anonymous/sections.gjs
index 9e3c7d0effe..730098ff0f8 100644
--- a/app/assets/javascripts/discourse/app/components/sidebar/anonymous/sections.gjs
+++ b/app/assets/javascripts/discourse/app/components/sidebar/anonymous/sections.gjs
@@ -9,7 +9,10 @@ export default class SidebarAnonymousSections extends Component {