dominus icon

Untitled

dominus | PRO | 12/11/23 09:08:25 PM UTC | 0 ⭐ | 14272 👁️ | Never ⏰ | []
Diff |

1.51 KB

|

None

|

0 👍

/

0 👎

diff --git a/mapedit/exult_studio.cc b/mapedit/exult_studio.cc
index 59817d22b..b8bad04e1 100644
--- a/mapedit/exult_studio.cc
+++ b/mapedit/exult_studio.cc
@@ -22,11 +22,41 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 #include "studio.h"
 
-#ifdef _WIN32
+#if defined(MACOSX) || defined(_WIN32)
 #include "utils.h"
 #endif
 
 int main(int argc, char **argv) {
+
+#ifdef MACOSX
+   // setting up environment for Exult Studio in an app bundle
+   setup_app_bundle_resource();
+   if (is_system_path_defined("<APP_BUNDLE_RES>")) {
+       std::string bundle_res = get_system_path("<APP_BUNDLE_RES>");
+       if (U7exists(bundle_res)) {
+           std::string bundle_share;
+           std::string bundle_pixbuf;
+           std::string bundle_im;
+           bundle_share = bundle_res;
+           bundle_share += "/share";
+           bundle_pixbuf = bundle_res;
+           bundle_pixbuf += "/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache";
+           bundle_im = bundle_res;
+           bundle_im += "/lib/gtk-3.0/3.0.0/immodules.cache";
+           const gchar *b_res = bundle_res.c_str();
+           const gchar *b_share = bundle_share.c_str();
+           const gchar *b_pixbuf= bundle_pixbuf.c_str();
+           const gchar *b_im = bundle_im.c_str();
+           g_setenv("XDG_DATA_DIRS", b_share, 1);
+           g_setenv("GTK_DATA_PREFIX", b_res, 1);
+           g_setenv("GTK_EXE_PREFIX", b_res, 1);
+           g_setenv("GTK_PATH", b_res, 1);
+           g_setenv("GDK_PIXBUF_MODULE_FILE", b_pixbuf, 1);
+           g_setenv("GTK_IM_MODULE_FILE", b_im, 1);
+       }
+   }
+#endif
+
    ExultStudio studio(argc, argv);
    studio.run();
 

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎