]> git.mxchange.org Git - flightgear.git/commitdiff
Fix missing menubar on Mac in some setups
authorJames Turner <zakalawe@mac.com>
Sat, 19 Mar 2016 14:46:11 +0000 (14:46 +0000)
committerJames Turner <zakalawe@mac.com>
Sat, 19 Mar 2016 14:46:11 +0000 (14:46 +0000)
- Only clear the OSG ‘pose as standalone’ flag when we really show
  a dialog, as opposed to when we /might/ show.

Tested:
 - Qt build using launcher
 - No Qt build
 - Qt build but launcher not requested

src/GUI/QtLauncher.cxx
src/GUI/SetupRootDialog.cxx
src/Viewer/WindowBuilder.cxx

index 3cc0f201dba2fae489035467ecaef232a700735a..8d31c6725926603f1eaa59bd973d82ce3c0f7226 100644 (file)
@@ -357,10 +357,6 @@ void initApp(int& argc, char** argv)
         ::setlocale(LC_NUMERIC, "C");
         ::setlocale(LC_COLLATE, "C");
 
-        // avoid double Apple menu and other weirdness if both Qt and OSG
-        // try to initialise various Cocoa structures.
-        flightgear::WindowBuilder::setPoseAsStandaloneApp(false);
-
         Qt::KeyboardModifiers mods = app->queryKeyboardModifiers();
         if (mods & (Qt::AltModifier | Qt::ShiftModifier)) {
             qWarning() << "Alt/shift pressed during launch";
@@ -427,6 +423,10 @@ bool runLauncherDialog()
 
     loadNaturalEarthData();
 
+    // avoid double Apple menu and other weirdness if both Qt and OSG
+    // try to initialise various Cocoa structures.
+    flightgear::WindowBuilder::setPoseAsStandaloneApp(false);
+    
     QtLauncher dlg;
     dlg.show();
 
index 93999f47666648ac167b6bf8637abd573c99ff3c..027418e50992a3c10f0e6d487aca589b1500dcef 100644 (file)
@@ -40,6 +40,7 @@
 #include <Main/fg_init.hxx>
 #include <Main/options.hxx>
 #include <Include/version.h>
+#include <Viewer/WindowBuilder.hxx>
 
 SetupRootDialog::SetupRootDialog(PromptState prompt) :
     QDialog(),
@@ -76,6 +77,10 @@ bool SetupRootDialog::runDialog(bool usingDefaultRoot)
 
 bool SetupRootDialog::runDialog(PromptState prompt)
 {
+    // avoid double Apple menu and other weirdness if both Qt and OSG
+    // try to initialise various Cocoa structures.
+    flightgear::WindowBuilder::setPoseAsStandaloneApp(false);
+
     SetupRootDialog dlg(prompt);
     dlg.exec();
     if (dlg.result() != QDialog::Accepted) {
index 06d94e1184c09f5da54bbdb289e85159c600103f..ec21bde6975ff73b47eb09a0cf44199a17632ab8 100644 (file)
@@ -25,7 +25,7 @@
 
 #include <sstream>
 
-#if defined(HAVE_QT) && defined(SG_MAC)
+#if defined(SG_MAC)
     #include <osgViewer/api/Cocoa/GraphicsWindowCocoa>
 #endif
 
@@ -253,7 +253,7 @@ GraphicsWindow* WindowBuilder::getDefaultWindow()
         = new GraphicsContext::Traits(*defaultTraits);
     traits->windowName = "FlightGear";
 
-#if defined(HAVE_QT) && defined(SG_MAC)
+#if defined(SG_MAC)
     int flags = osgViewer::GraphicsWindowCocoa::WindowData::CheckForEvents;
 
     // avoid both QApplication and OSG::CocoaViewer doing single-application