gamma yuva hist fix, theme change without exit
[goodguy/history.git] / cinelerra-5.0 / cinelerra / main.C
index bba65b7651c30b0a21a78af301b8f279775e6645..69895ec4c996df5fb1f065986896e8e9cc5821b7 100644 (file)
@@ -186,6 +186,7 @@ int main(int argc, char *argv[])
 
 
 
+       int load_backup = 0;
 
        for(int i = 1; i < argc; i++)
        {
@@ -263,6 +264,11 @@ int main(int argc, char *argv[])
                        }
                }
                else
+               if(!strcmp(argv[i], "-x"))
+               {
+                       load_backup = 1;
+               }
+               else
                {
                        char *new_filename;
                        new_filename = new char[BCTEXTLEN];
@@ -354,7 +360,6 @@ int main(int argc, char *argv[])
                case DO_GUI:
                {
                        int done = 0;
-                       int load_backup = 0;
                        while( !done ) {
                                BC_WindowBase::get_resources()->vframe_shm = 0;
                                MWindow mwindow;
@@ -399,6 +404,15 @@ int main(int argc, char *argv[])
                                mwindow.save_defaults();
 //PRINT_TRACE
                                filenames.remove_all_objects();
+#if 1
+                               if( !mwindow.reload() ) break;
+// due to leaks and munges in x fonts, this loop has to be
+//   executed via a total program restart  2/18/2016
+                               char exe_path[BCTEXTLEN];
+                               if( readlink("/proc/self/exe", exe_path, sizeof(exe_path)) < 0 ) break;
+                               char *const av[3] = { exe_path, (char*)(load_backup? "-x" : 0), 0 };
+                               execv(exe_path, av);
+#endif
                        }
 //SET_TRACE
 DISABLE_BUFFER