commit 08d898359e7edfeefa0691572aafbd0a9a49125e parent 4a8e9c0b1b6924f734c90486790a7c011faeda84 Author: Emilio Cobos Álvarez <emilio@crisal.io> Date: Wed, 15 Oct 2025 06:04:58 +0000 Bug 1994245 - Don't hide the popup widget if it's already getting opened again. r=tnikkel,layout-reviewers Differential Revision: https://phabricator.services.mozilla.com/D268636 Diffstat:
5 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/browser/components/translations/tests/browser/browser.toml b/browser/components/translations/tests/browser/browser.toml @@ -33,7 +33,6 @@ support-files = [ ["browser_translations_recent_language_memory_auto_translate.js"] ["browser_translations_recent_language_memory_full_page_and_select.js"] -skip-if = ["os == 'linux' && os_version == '22.04' && display == 'wayland' && !debug"] # Bug 1994245 ["browser_translations_recent_language_memory_full_page_and_select_multi_window.js"] skip-if = ["os == 'linux' && os_version == '24.04' && processor == 'x86_64' && display == 'x11' && ccov"] # Bug 1972458 diff --git a/browser/components/translations/tests/browser/browser_full.toml b/browser/components/translations/tests/browser/browser_full.toml @@ -104,7 +104,6 @@ skip-if = ["true"] ["browser_translations_full_page_panel_target_language_persists_on_reopen.js"] ["browser_translations_full_page_panel_unsupported_lang.js"] -skip-if = ["os == 'linux' && os_version == '22.04' && display == 'wayland' && !debug"] # Bug 1994245 ["browser_translations_full_page_panel_weblanguage_differs_from_app.js"] diff --git a/browser/components/translations/tests/browser/browser_select.toml b/browser/components/translations/tests/browser/browser_select.toml @@ -39,7 +39,6 @@ support-files = [ ["browser_translations_select_panel_flip_lexical_shortlist.js"] ["browser_translations_select_panel_init_failure.js"] -skip-if = ["os == 'linux' && os_version == '22.04' && display == 'wayland' && !debug"] # Bug 1994245 ["browser_translations_select_panel_modify_available_language_models.js"] diff --git a/browser/components/translations/tests/browser/browser_telemetry.toml b/browser/components/translations/tests/browser/browser_telemetry.toml @@ -25,7 +25,6 @@ support-files = [ ["browser_translations_full_page_telemetry_translation_request.js"] ["browser_translations_full_page_telemetry_unsupported_lang.js"] -skip-if = ["os == 'linux' && os_version == '22.04' && display == 'wayland' && !debug"] # Bug 1994245 ["browser_translations_select_telemetry_change_both_languages_together.js"] diff --git a/layout/xul/nsMenuPopupFrame.cpp b/layout/xul/nsMenuPopupFrame.cpp @@ -1083,7 +1083,12 @@ void nsMenuPopupFrame::HidePopup(bool aDeselectMenu, nsPopupState aNewState, PopupExpirationTracker::GetOrCreate().AddObject(this); } NS_DispatchToMainThread( - NewRunnableMethod<bool>("HideWidget", widget, &nsIWidget::Show, false)); + NS_NewRunnableFunction("HideWidget", [widget = RefPtr{widget}] { + auto* frame = widget->GetPopupFrame(); + if (!frame || !frame->IsVisibleOrShowing()) { + widget->Show(false); + } + })); } ClearPendingWidgetMoveResize();