Blob Blame History Raw
diff -up ./gazebo/gazebo_main.cc.wayland ./gazebo/gazebo_main.cc
--- ./gazebo/gazebo_main.cc.wayland	2019-03-28 20:58:31.000000000 -0400
+++ ./gazebo/gazebo_main.cc	2020-04-18 21:28:37.920694447 -0400
@@ -131,6 +131,25 @@ int main(int _argc, char **_argv)
     return 0;
   }
 
+  std::vector<std::string> newEnv;
+  char **environment = environ;
+
+  while(*environment != nullptr)
+  {
+      newEnv.push_back(*environment);
+      ++environment;
+  }
+  newEnv.push_back("QT_QPA_PLATFORM=xcb");
+
+  char** modifiedEnv = (char**)malloc(sizeof(char*) * newEnv.size() + 1);
+  modifiedEnv[newEnv.size()] = nullptr;
+
+  for(size_t ii = 0; ii < newEnv.size(); ++ii)
+  {
+      modifiedEnv[ii] = &newEnv[ii][0];
+  }
+
+
   struct sigaction sigact;
   sigact.sa_flags = 0;
   sigact.sa_handler = sig_handler;
@@ -199,7 +218,7 @@ int main(int _argc, char **_argv)
     {
       // remove client from foreground process group
       setpgid(0, 0);
-      execvp(argvClient[0], argvClient);
+      execvpe(argvClient[0], argvClient, modifiedEnv);
     }
   }
   else