diff libpurple/smiley.c @ 23139:53b3c75c9e26

Separate the custom smileys from the regular smileys, and add a 'Manage' button in the smiley dialog for the custom smileys. This should make it more obvious that custom smileys are supported (do we actually want it to be? ;) )
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sun, 11 May 2008 04:04:35 +0000
parents 6c4f47b9d201
children f1df88964b3d
line wrap: on
line diff
--- a/libpurple/smiley.c	Sat May 10 17:05:25 2008 +0000
+++ b/libpurple/smiley.c	Sun May 11 04:04:35 2008 +0000
@@ -300,6 +300,7 @@
 };
 
 static guint signals[SIG_LAST];
+static GObjectClass *parent_class;
 
 static void
 purple_smiley_init(GTypeInstance *instance, gpointer klass)
@@ -366,7 +367,6 @@
 purple_smiley_finalize(GObject *obj)
 {
 	PurpleSmiley *smiley = PURPLE_SMILEY(obj);
-	g_signal_emit(obj, signals[SIG_DESTROY], 0);
 
 	if (g_hash_table_lookup(smiley_shortcut_index, smiley->shortcut)) {
 		g_hash_table_remove(smiley_shortcut_index, smiley->shortcut);
@@ -383,14 +383,24 @@
 }
 
 static void
+purple_smiley_dispose(GObject *gobj)
+{
+	g_signal_emit(gobj, signals[SIG_DESTROY], 0);
+	parent_class->dispose(gobj);
+}
+
+static void
 purple_smiley_class_init(PurpleSmileyClass *klass)
 {
 	GObjectClass *gobj_class = G_OBJECT_CLASS(klass);
 	GParamSpec *pspec;
 
+	parent_class = g_type_class_peek_parent(klass);
+
 	gobj_class->get_property = purple_smiley_get_property;
 	gobj_class->set_property = purple_smiley_set_property;
 	gobj_class->finalize = purple_smiley_finalize;
+	gobj_class->dispose = purple_smiley_dispose;
 
 	/* Shortcut */
 	pspec = g_param_spec_string(PROP_SHORTCUT_S, _("Shortcut"),