From 7cd4d35778ff484558ae649a96a3a945914d431d Mon Sep 17 00:00:00 2001 From: Matthieu Baerts Date: Sun, 12 Oct 2014 21:16:32 +0200 Subject: [PATCH] linux: GlobalMenu: only if UBUNTU_MENUPROXY is set When checking if we should react differently when GlobalMenu bar is used, we should check if UBUNTU_MENUPROXY env var is (correctly) set instead of checking if we're using Unity on a Unity session. It's better to do that because we can use Compiz on a Unity session without Unity. Or we can also use Unity in a different session. --- atom/browser/native_window_views.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/atom/browser/native_window_views.cc b/atom/browser/native_window_views.cc index 60eb70a71c5e..dde5c57f589c 100644 --- a/atom/browser/native_window_views.cc +++ b/atom/browser/native_window_views.cc @@ -67,9 +67,12 @@ int kWindowsCreated = 0; bool ShouldUseGlobalMenuBar() { // Some DE would pretend to be Unity but don't have global application menu, // so we can not trust unity::IsRunning(). + // When Unity's GlobalMenu is running $UBUNTU_MENUPROXY should be set to + // something like "libappmenu.so". scoped_ptr env(base::Environment::Create()); - return unity::IsRunning() && (base::nix::GetDesktopEnvironment(env.get()) == - base::nix::DESKTOP_ENVIRONMENT_UNITY); + std::string name; + return env && env->GetVar("UBUNTU_MENUPROXY", &name) && + !name.empty() && name != "0"; } #endif