anjuta r4002 - in trunk: . plugins/project-manager



Author: jhs
Date: Thu Jun 12 12:44:08 2008
New Revision: 4002
URL: http://svn.gnome.org/viewvc/anjuta?rev=4002&view=rev

Log:
2008-06-12  Johannes Schmid  <jhs gnome org>

	* plugins/project-manager/plugin.c (on_close_project_idle),
	(on_close_project), (project_manager_plugin_deactivate_plugin),
	(project_manager_plugin_instance_init):
	* plugins/project-manager/plugin.h:
	
	Fixed a possible bug where the project-manager plugin is deactivated twice.

Modified:
   trunk/ChangeLog
   trunk/plugins/project-manager/plugin.c
   trunk/plugins/project-manager/plugin.h

Modified: trunk/plugins/project-manager/plugin.c
==============================================================================
--- trunk/plugins/project-manager/plugin.c	(original)
+++ trunk/plugins/project-manager/plugin.c	Thu Jun 12 12:44:08 2008
@@ -169,6 +169,7 @@
 on_close_project_idle (gpointer plugin)
 {
 	project_manager_plugin_close (ANJUTA_PLUGIN_PROJECT_MANAGER (plugin));
+	ANJUTA_PLUGIN_PROJECT_MANAGER(plugin)->close_project_idle = -1;
 	/* Self destruct */
 	anjuta_plugin_deactivate (ANJUTA_PLUGIN (plugin));
 	
@@ -179,7 +180,7 @@
 on_close_project (GtkAction *action, ProjectManagerPlugin *plugin)
 {
 	if (plugin->project_uri)
-		g_idle_add (on_close_project_idle, plugin);
+		plugin->close_project_idle = g_idle_add (on_close_project_idle, plugin);
 }
 
 static GList *
@@ -1484,6 +1485,9 @@
 	ProjectManagerPlugin *pm_plugin;
 	pm_plugin = ANJUTA_PLUGIN_PROJECT_MANAGER (plugin);
 	
+	if (pm_plugin->close_project_idle > -1)
+		g_source_remove (pm_plugin->close_project_idle);
+
 	/* Close project if it's open */
 	if (pm_plugin->project_root_uri)
 		project_manager_plugin_close (pm_plugin);
@@ -1550,6 +1554,7 @@
 	plugin->fm_current_uri = NULL;
 	plugin->current_editor_uri = NULL;
 	plugin->session_by_me = FALSE;
+	plugin->close_project_idle = -1;
 }
 
 static void

Modified: trunk/plugins/project-manager/plugin.h
==============================================================================
--- trunk/plugins/project-manager/plugin.h	(original)
+++ trunk/plugins/project-manager/plugin.h	Thu Jun 12 12:44:08 2008
@@ -66,6 +66,9 @@
 	
 	/* Session flag */
 	gboolean session_by_me;
+
+	/* Idle callback id */
+	guint close_project_idle;
 };
 
 struct _ProjectManagerPluginClass{



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]