add single instance mode
[uwplayer.git] / application / main.c
index d8a3b31..422b6ee 100644 (file)
@@ -114,6 +114,26 @@ int main(int argc, char** argv) {
         open_file_arg = argv[1];
     }
     
+    // load settings
+    if(load_config()) {
+        return 1;
+    }
+    
+    // try single instance open
+    if(open_file_arg) {
+        char *instance_path = InstanceFilePath(display);
+        int instance_fd = ConnectToInstance(instance_path);
+        free(instance_path);
+        
+        if(instance_fd >= 0) {
+            write(instance_fd, "open ", 5);
+            write(instance_fd, open_file_arg, strlen(open_file_arg));
+            write(instance_fd, "\n", 1);
+            close(instance_fd);
+            return 0;
+        }
+    }
+    
     XtAppAddInput(
             app,
             event_pipe[0],
@@ -121,11 +141,6 @@ int main(int argc, char** argv) {
             input_proc,
             NULL);
     
-    // load settings
-    if(load_config()) {
-        return 1;
-    }
-   
     MainWindow *window = WindowCreate(display);
     toplevel_window = window->window;