/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "mozilla/widget/NativeMenuSupport.h" #include "mozilla/StaticPrefs_widget.h" #include "MainThreadUtils.h" #include "NativeMenuGtk.h" #include "DBusMenu.h" #include "nsWindow.h" namespace mozilla::widget { void NativeMenuSupport::CreateNativeMenuBar(nsIWidget* aParent, dom::Element* aMenuBarElement) { MOZ_RELEASE_ASSERT(NS_IsMainThread(), "Attempting to create native menu bar on wrong thread!"); #ifdef MOZ_ENABLE_DBUS if (aMenuBarElement && StaticPrefs::widget_gtk_global_menu_enabled() && DBusMenuFunctions::Init()) { if (auto window = nsWindow::FromWidget(aParent)) { window->SetDBusMenuBar(DBusMenuBar::Create(aMenuBarElement)); } } #endif } already_AddRefed NativeMenuSupport::CreateNativePopupMenu( dom::Element* aPopup) { return MakeAndAddRef(aPopup); } bool NativeMenuSupport::ShouldUseNativeAnchoredMenus() { return false; } bool NativeMenuSupport::ShouldUseNativeContextMenus() { return NativeMenuGtk::CanUse(); } } // namespace mozilla::widget