SF.net SVN: geany:[5706] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Mon Apr 11 12:07:19 UTC 2011


Revision: 5706
          http://geany.svn.sourceforge.net/geany/?rev=5706&view=rev
Author:   ntrel
Date:     2011-04-11 12:07:19 +0000 (Mon, 11 Apr 2011)

Log Message:
-----------
Update path when saving a new document for the first time if the
follow path option is enabled.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/plugins/filebrowser.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2011-04-10 17:03:41 UTC (rev 5705)
+++ trunk/ChangeLog	2011-04-11 12:07:19 UTC (rev 5706)
@@ -1,3 +1,10 @@
+2011-04-11  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
+
+ * plugins/filebrowser.c:
+   Update path when saving a new document for the first time if the
+   follow path option is enabled.
+
+
 2011-04-10  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>
 
  * src/editor.c:

Modified: trunk/plugins/filebrowser.c
===================================================================
--- trunk/plugins/filebrowser.c	2011-04-10 17:03:41 UTC (rev 5705)
+++ trunk/plugins/filebrowser.c	2011-04-11 12:07:19 UTC (rev 5706)
@@ -97,6 +97,7 @@
 
 static void project_change_cb(GObject *obj, GKeyFile *config, gpointer data);
 
+/* note: other callbacks connected in plugin_init */
 PluginCallback plugin_callbacks[] =
 {
 	{ "project-open", (GCallback) &project_change_cb, TRUE, NULL },
@@ -1042,11 +1043,15 @@
 }
 
 
+static gpointer last_activate_path = NULL;
+
 static void document_activate_cb(G_GNUC_UNUSED GObject *obj, GeanyDocument *doc,
 								 G_GNUC_UNUSED gpointer data)
 {
 	gchar *new_dir;
 
+	last_activate_path = doc->real_path;
+
 	if (! fb_follow_path || doc->file_name == NULL || ! g_path_is_absolute(doc->file_name))
 		return;
 
@@ -1063,6 +1068,13 @@
 }
 
 
+static void document_save_cb(GObject *obj, GeanyDocument *doc, gpointer user_data)
+{
+	if (!last_activate_path)
+		document_activate_cb(obj, doc, user_data);
+}
+
+
 static void kb_activate(guint key_id)
 {
 	gtk_notebook_set_current_page(GTK_NOTEBOOK(geany->main_widgets->sidebar_notebook), page_number);
@@ -1125,6 +1137,8 @@
 
 	plugin_signal_connect(geany_plugin, NULL, "document-activate", TRUE,
 		(GCallback) &document_activate_cb, NULL);
+	plugin_signal_connect(geany_plugin, NULL, "document-save", TRUE,
+		(GCallback) &document_save_cb, NULL);
 }
 
 


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