SF.net SVN: geany: [785] trunk
ntrel at users.sourceforge.net
ntrel at xxxxx
Sun Sep 3 19:20:02 UTC 2006
Revision: 785
http://svn.sourceforge.net/geany/?rev=785&view=rev
Author: ntrel
Date: 2006-09-03 12:19:56 -0700 (Sun, 03 Sep 2006)
Log Message:
-----------
Open a new instance without loading session files if socket already exists and no filenames are specified on the command-line
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/main.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2006-09-03 13:30:12 UTC (rev 784)
+++ trunk/ChangeLog 2006-09-03 19:19:56 UTC (rev 785)
@@ -1,3 +1,10 @@
+2006-09-03 Nick Treleaven <nick.treleaven at btinternet.com>
+
+ * src/main.c: Open a new instance without loading session files if
+ socket already exists and no filenames are specified
+ on the command-line.
+
+
2006-09-03 Enrico Tröger <enrico.troeger at uvena.de>
* src/utils.c: Save All button is also active when only one file is
Modified: trunk/src/main.c
===================================================================
--- trunk/src/main.c 2006-09-03 13:30:12 UTC (rev 784)
+++ trunk/src/main.c 2006-09-03 19:19:56 UTC (rev 785)
@@ -96,6 +96,7 @@
#endif
static gboolean debug_mode = FALSE;
+static gboolean load_session = TRUE;
static gboolean ignore_global_tags = FALSE;
static gboolean no_msgwin = FALSE;
static gboolean show_version = FALSE;
@@ -508,14 +509,20 @@
socket_info.lock_socket = socket_init(argc, argv);
if (socket_info.lock_socket < 0)
{
- g_free(app->configdir);
- g_free(app->datadir);
- g_free(app->docdir);
- g_free(app);
- return 0;
+ // Socket exists
+ if (argc > 1) // filenames were sent to first instance, so quit
+ {
+ g_free(app->configdir);
+ g_free(app->datadir);
+ g_free(app->docdir);
+ g_free(app);
+ return 0;
+ }
+ // Start a new instance if no command line strings were passed
+ socket_info.ignore_socket = TRUE;
+ load_session = FALSE;
}
}
-
#endif
gtk_init(&argc, &argv);
@@ -603,7 +610,7 @@
}
}
}
- else if (app->pref_main_load_session)
+ else if (app->pref_main_load_session && load_session)
{
if (! configuration_open_files())
{
@@ -702,13 +709,13 @@
#endif
// remote command mode, here we have another running instance and want to use it
- geany_debug("using running instance of Geany");
-
if (argc > 1)
{
gint i;
gchar *filename;
+ geany_debug("using running instance of Geany");
+
socket_fd_write_all(sock, "open\n", 5);
for(i = 1; i < argc && argv[i] != NULL; i++)
@@ -956,13 +963,12 @@
else
geany_debug("got data from socket, but it does not look like a filename");
}
+ gtk_window_deiconify(GTK_WINDOW(app->window));
+ gtk_window_present(GTK_WINDOW(app->window));
}
socket_fd_close(sock);
- gtk_window_deiconify(GTK_WINDOW(app->window));
- gtk_window_present(GTK_WINDOW(app->window));
-
return TRUE;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list