Add wxApp::GTKIsUsingGlobalMenu() helper to wxGTK.
This allows to check whether the global menu is being used and will be mostly useful for working around various bugs/problems uncovered by it. See #14302. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73008 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -56,6 +56,13 @@ public:
|
|||||||
// must return XVisualInfo pointer (it is not freed by caller)
|
// must return XVisualInfo pointer (it is not freed by caller)
|
||||||
virtual void *GetXVisualInfo() { return NULL; }
|
virtual void *GetXVisualInfo() { return NULL; }
|
||||||
|
|
||||||
|
// Check if we're using a global menu. Currently this is only true when
|
||||||
|
// running under Ubuntu Unity and global menu is not disabled.
|
||||||
|
//
|
||||||
|
// This is mostly used in the implementation in order to work around
|
||||||
|
// various bugs arising due to this.
|
||||||
|
static bool GTKIsUsingGlobalMenu();
|
||||||
|
|
||||||
#if wxUSE_LIBHILDON || wxUSE_LIBHILDON2
|
#if wxUSE_LIBHILDON || wxUSE_LIBHILDON2
|
||||||
// Maemo-specific method: get the main program object
|
// Maemo-specific method: get the main program object
|
||||||
HildonProgram *GetHildonProgram();
|
HildonProgram *GetHildonProgram();
|
||||||
|
@@ -529,6 +529,25 @@ void wxGUIAppTraits::MutexGuiLeave()
|
|||||||
}
|
}
|
||||||
#endif // wxUSE_THREADS
|
#endif // wxUSE_THREADS
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
bool wxApp::GTKIsUsingGlobalMenu()
|
||||||
|
{
|
||||||
|
static int s_isUsingGlobalMenu = -1;
|
||||||
|
if ( s_isUsingGlobalMenu == -1 )
|
||||||
|
{
|
||||||
|
// Currently we just check for this environment variable because this
|
||||||
|
// is how support for the global menu is implemented under Ubuntu.
|
||||||
|
//
|
||||||
|
// If we ever get false positives, we could also check for
|
||||||
|
// XDG_CURRENT_DESKTOP env var being set to "Unity".
|
||||||
|
wxString proxy;
|
||||||
|
s_isUsingGlobalMenu = wxGetEnv("UBUNTU_MENUPROXY", &proxy) &&
|
||||||
|
!proxy.empty();
|
||||||
|
}
|
||||||
|
|
||||||
|
return s_isUsingGlobalMenu == 1;
|
||||||
|
}
|
||||||
|
|
||||||
#if wxUSE_LIBHILDON || wxUSE_LIBHILDON2
|
#if wxUSE_LIBHILDON || wxUSE_LIBHILDON2
|
||||||
// Maemo-specific method: get the main program object
|
// Maemo-specific method: get the main program object
|
||||||
HildonProgram *wxApp::GetHildonProgram()
|
HildonProgram *wxApp::GetHildonProgram()
|
||||||
|
Reference in New Issue
Block a user