+2003-07-18 [christoph] 0.9.3claws23
+
+ * src/common/hooks.c
+ fix crash when hooks where unregisted
+
+ * src/plugins/trayicon/trayicon.c
+ unregister detroy signal before destroying the widget
+ (still crashes when the plugin is unloaded)
+
2003-07-18 [alfons] 0.9.3claws22
* src/folderview.c
MICRO_VERSION=3
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=claws22
+EXTRA_VERSION=claws23
VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
dnl set $target
#include <glib.h>
+#include "utils.h"
#include "hooks.h"
-GHashTable *hooklist_table;
+static GHashTable *hooklist_table;
GHookList *hooks_get_hooklist(gchar *hooklist_name)
{
g_hook_append(hooklist, hook);
+ debug_print("registed new hook for '%s' as id %d\n", hooklist_name, hook->hook_id);
+
return hook->hook_id;
}
hook = g_hook_get(hooklist, hook_id);
g_return_if_fail(hook != NULL);
- g_hook_destroy_link(hooklist, hook);
+ debug_print("unregisted hook %d in '%s'\n", hook->hook_id, hooklist_name);
+
+ g_hook_destroy(hooklist, hook);
}
struct MarshalData
static GtkWidget *eventbox;
static GtkWidget *image;
static GtkTooltips *tooltips;
+guint destroy_signal_id;
typedef enum
{
image = gtk_pixmap_new(nomail_pixmap, nomail_bitmap);
gtk_packer_add_defaults(GTK_PACKER(packer), GTK_WIDGET(image), GTK_SIDE_TOP, GTK_ANCHOR_CENTER, GTK_PACK_EXPAND);
+ destroy_signal_id =
gtk_signal_connect(GTK_OBJECT(trayicon), "destroy",
GTK_SIGNAL_FUNC(destroy_cb), NULL);
gtk_signal_connect(GTK_OBJECT(trayicon), "size_allocate",
void plugin_done(void)
{
+ gtk_signal_disconnect(GTK_OBJECT(trayicon), destroy_signal_id);
+
gtk_widget_destroy(GTK_WIDGET(trayicon));
hooks_unregister_hook(FOLDER_ITEM_UPDATE_HOOKLIST, hook_id);
}