Browse Source

Makes project manager never initialize mono debug.

The heuristic whether we're in the project manager inside GDMono
didn't work if the project manager was launched by not having any path
to run.

This is fixed now by making a Main::is_project_manager().
Pieter-Jan Briers 7 years ago
parent
commit
1099838079
3 changed files with 9 additions and 17 deletions
  1. 6 1
      main/main.cpp
  2. 1 0
      main/main.h
  3. 2 16
      modules/mono/mono_gd/gd_mono.cpp

+ 6 - 1
main/main.cpp

@@ -122,13 +122,18 @@ static bool force_lowdpi = false;
 static int init_screen = -1;
 static int init_screen = -1;
 static bool use_vsync = true;
 static bool use_vsync = true;
 static bool editor = false;
 static bool editor = false;
-static bool project_manager = false;
 static bool show_help = false;
 static bool show_help = false;
 static bool disable_render_loop = false;
 static bool disable_render_loop = false;
 static int fixed_fps = -1;
 static int fixed_fps = -1;
 
 
 static OS::ProcessID allow_focus_steal_pid = 0;
 static OS::ProcessID allow_focus_steal_pid = 0;
 
 
+static bool project_manager = false;
+
+bool Main::is_project_manager() {
+	return project_manager;
+}
+
 void initialize_physics() {
 void initialize_physics() {
 
 
 	/// 3D Physics Server
 	/// 3D Physics Server

+ 1 - 0
main/main.h

@@ -56,6 +56,7 @@ public:
 	static bool iteration();
 	static bool iteration();
 	static void cleanup();
 	static void cleanup();
 	static void force_redraw();
 	static void force_redraw();
+	static bool is_project_manager();
 };
 };
 
 
 #endif
 #endif

+ 2 - 16
modules/mono/mono_gd/gd_mono.cpp

@@ -47,6 +47,7 @@
 
 
 #ifdef TOOLS_ENABLED
 #ifdef TOOLS_ENABLED
 #include "../editor/godotsharp_editor.h"
 #include "../editor/godotsharp_editor.h"
+#include "main/main.h"
 #endif
 #endif
 
 
 void gdmono_unhandled_exception_hook(MonoObject *exc, void *user_data) {
 void gdmono_unhandled_exception_hook(MonoObject *exc, void *user_data) {
@@ -94,21 +95,6 @@ static bool _wait_for_debugger_msecs(uint32_t p_msecs) {
 }
 }
 #endif
 #endif
 
 
-#ifdef TOOLS_ENABLED
-// temporary workaround. should be provided from Main::setup/setup2 instead
-bool _is_project_manager_requested() {
-
-	List<String> cmdline_args = OS::get_singleton()->get_cmdline_args();
-	for (List<String>::Element *E = cmdline_args.front(); E; E = E->next()) {
-		const String &arg = E->get();
-		if (arg == "-p" || arg == "--project-manager")
-			return true;
-	}
-
-	return false;
-}
-#endif
-
 #ifdef DEBUG_ENABLED
 #ifdef DEBUG_ENABLED
 void gdmono_debug_init() {
 void gdmono_debug_init() {
 
 
@@ -121,7 +107,7 @@ void gdmono_debug_init() {
 #ifdef TOOLS_ENABLED
 #ifdef TOOLS_ENABLED
 	if (Engine::get_singleton()->is_editor_hint() ||
 	if (Engine::get_singleton()->is_editor_hint() ||
 			ProjectSettings::get_singleton()->get_resource_path().empty() ||
 			ProjectSettings::get_singleton()->get_resource_path().empty() ||
-			_is_project_manager_requested()) {
+			Main::is_project_manager()) {
 		return;
 		return;
 	}
 	}
 #endif
 #endif