diff options
author | Richard Hestilow <hestilow@ximian.com> | 2001-07-25 08:52:04 +0000 |
---|---|---|
committer | Rachel Hestilow <hestgray@src.gnome.org> | 2001-07-25 08:52:04 +0000 |
commit | 80b5aabaf002521816ff42acc08803933038d5e1 (patch) | |
tree | ea608f6201750cffb727ee04fbfcf0ab9525eedf /capplets | |
parent | 9c60bf36b22307c9ff7fb912e82667fb35711fb2 (diff) | |
download | gnome-control-center-80b5aabaf002521816ff42acc08803933038d5e1.tar.gz |
Set control data on PropertyFrame as part of evil hack. (quit_cb): Work if
2001-07-24 Richard Hestilow <hestilow@ximian.com>
* capplet-util.c (get_control_cb): Set control data on PropertyFrame
as part of evil hack.
(quit_cb): Work if called multiple times...also evil.
(pf_destroy_cb): unref the control...evil evil evil.
Diffstat (limited to 'capplets')
-rw-r--r-- | capplets/common/ChangeLog | 7 | ||||
-rw-r--r-- | capplets/common/capplet-util.c | 18 |
2 files changed, 21 insertions, 4 deletions
diff --git a/capplets/common/ChangeLog b/capplets/common/ChangeLog index a4ae98e5e..004aec0a4 100644 --- a/capplets/common/ChangeLog +++ b/capplets/common/ChangeLog @@ -1,5 +1,12 @@ 2001-07-24 Richard Hestilow <hestilow@ximian.com> + * capplet-util.c (get_control_cb): Set control data on PropertyFrame + as part of evil hack. + (quit_cb): Work if called multiple times...also evil. + (pf_destroy_cb): unref the control...evil evil evil. + +2001-07-24 Richard Hestilow <hestilow@ximian.com> + * capplet-util.c: Remove debugging cruft. (capplet_init): Check for legacy with --init-session-settings too. diff --git a/capplets/common/capplet-util.c b/capplets/common/capplet-util.c index d64f5104e..3917bd9d9 100644 --- a/capplets/common/capplet-util.c +++ b/capplets/common/capplet-util.c @@ -106,10 +106,14 @@ get_moniker_cb (BonoboPropertyBag *bag, BonoboArg *arg, guint arg_id, * configuration database is properly unrefed */ +/* evil, evil, evil.. */ static void pf_destroy_cb (BonoboPropertyFrame *pf, Bonobo_ConfigDatabase db) { + BonoboPropertyControl *pc = gtk_object_get_data (GTK_OBJECT (pf), "property-control"); + bonobo_object_release_unref (db, NULL); + bonobo_object_unref (BONOBO_OBJECT (pc)); } /* set_moniker_cb @@ -184,6 +188,9 @@ get_control_cb (BonoboPropertyControl *property_control, gint page_number) pf = bonobo_property_frame_new (NULL, NULL); gtk_object_set_data (GTK_OBJECT (property_control), "property-frame", pf); + /* Evil, evil.. */ + gtk_object_set_data (GTK_OBJECT (pf), + "property-control", property_control); gtk_container_add (GTK_CONTAINER (pf), widget); gtk_widget_show_all (pf); @@ -236,7 +243,13 @@ static void quit_cb (BonoboPropertyControl *pc, Bonobo_ConfigDatabase db) { pair_t *pair; - + static gboolean called = FALSE; + + if (called) + return; + else + called = TRUE; + pair = g_new (pair_t, 1); pair->a = (gpointer) db; pair->b = gtk_object_get_data (GTK_OBJECT (pc), "listener-id"); @@ -502,7 +515,6 @@ capplet_init (int argc, } g_free (default_moniker); - if (legacy_files && get_legacy_fn && !get_legacy) { for (i = 0; legacy_files[i] != NULL; i++) @@ -514,7 +526,6 @@ capplet_init (int argc, } } } - if ((apply_only || init_session) && apply_fn != NULL) { if (needs_legacy) { @@ -530,7 +541,6 @@ capplet_init (int argc, Bonobo_ConfigDatabase_sync (db, &ev); } else { setup_session_mgmt (argv[0]); - if (needs_legacy) { get_legacy_fn (db); |