From 4af8d8fa9262495cd8d4c3bdfa7088b2f14507ab Mon Sep 17 00:00:00 2001 From: Bradford Hovinen Date: Fri, 27 Jul 2001 01:23:26 +0000 Subject: [PATCH] Add flag launching 2001-07-26 Bradford Hovinen * capplet-dir.h (struct _Capplet): Add flag launching * capplet-dir.c (capplet_new): Initialize capplet->launching (capplet_reset_cb): Implement. Just reset capplet->launching (capplet_activate): Just return if capplet->launching is set; otherwise set that flag and add an idle handler to unset it --- control-center/ChangeLog | 7 +++++++ control-center/capplet-dir.c | 19 +++++++++++++++++++ control-center/capplet-dir.h | 1 + 3 files changed, 27 insertions(+) diff --git a/control-center/ChangeLog b/control-center/ChangeLog index f64516a51..7f9d41bd7 100644 --- a/control-center/ChangeLog +++ b/control-center/ChangeLog @@ -1,5 +1,12 @@ 2001-07-26 Bradford Hovinen + * capplet-dir.h (struct _Capplet): Add flag launching + + * capplet-dir.c (capplet_new): Initialize capplet->launching + (capplet_reset_cb): Implement. Just reset capplet->launching + (capplet_activate): Just return if capplet->launching is set; + otherwise set that flag and add an idle handler to unset it + * kill-gnomecc.sh: Don't kill oafd for fear that someone may be running Evolution. Kill bonobo-moniker-archiver after everything else is dead. Redirect errors to /dev/null. Kill the mouse diff --git a/control-center/capplet-dir.c b/control-center/capplet-dir.c index 2527ce39c..52faed791 100644 --- a/control-center/capplet-dir.c +++ b/control-center/capplet-dir.c @@ -79,6 +79,8 @@ capplet_new (CappletDir *dir, gchar *desktop_path) g_free (path); capplet = g_new0 (Capplet, 1); + capplet->launching = FALSE; + entry = CAPPLET_DIR_ENTRY (capplet); entry->type = TYPE_CAPPLET; @@ -194,11 +196,28 @@ capplet_dir_entry_shutdown (CappletDirEntry *entry) g_assert_not_reached (); } +static gint +capplet_reset_cb (Capplet *capplet) +{ + g_message ("%s: Enter", __FUNCTION__); + capplet->launching = FALSE; + return FALSE; +} + static void capplet_activate (Capplet *capplet) { GnomeDesktopEntry *entry; + if (capplet->launching) { + g_message ("Capplet already running"); + return; + } else { + g_message ("Capplet not already running; launching"); + capplet->launching = TRUE; + gtk_idle_add ((GtkFunction) capplet_reset_cb, capplet); + } + entry = CAPPLET_DIR_ENTRY (capplet)->entry; #warning FIXME: this should probably be root-manager-helper diff --git a/control-center/capplet-dir.h b/control-center/capplet-dir.h index 620810617..6f5bb8ac2 100644 --- a/control-center/capplet-dir.h +++ b/control-center/capplet-dir.h @@ -66,6 +66,7 @@ struct _CappletDir struct _Capplet { CappletDirEntry entry; + gboolean launching; }; CappletDirEntry *capplet_new (CappletDir *dir,