diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-06-06 11:13:04 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-06-06 11:13:04 +0000 |
commit | 7f0a8d80fdb7ad6a254bbfa5eb8af0f21f206067 (patch) | |
tree | 16d8e5aa74c20cf0bf29df63e57fa3491e7e68cf /src/sourcewindow.c | |
parent | 5db09c44a0879e21a41615a05b6a72f5c2b319d5 (diff) |
don't use 'destroy' signal to destroy objects.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@316 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/sourcewindow.c')
-rw-r--r-- | src/sourcewindow.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/sourcewindow.c b/src/sourcewindow.c index b55554e0..f6eaf7e5 100644 --- a/src/sourcewindow.c +++ b/src/sourcewindow.c @@ -39,7 +39,8 @@ static void source_window_size_alloc_cb (GtkWidget *widget, GtkAllocation *allocation); -static void source_window_destroy_cb (GtkWidget *widget, +static gint source_window_delete_cb (GtkWidget *widget, + GdkEventAny *event, SourceWindow *sourcewin); static gboolean key_pressed (GtkWidget *widget, GdkEventKey *event, @@ -68,8 +69,8 @@ SourceWindow *source_window_create(void) prefs_common.sourcewin_height); g_signal_connect(G_OBJECT(window), "size_allocate", G_CALLBACK(source_window_size_alloc_cb), sourcewin); - g_signal_connect(G_OBJECT(window), "destroy", - G_CALLBACK(source_window_destroy_cb), sourcewin); + g_signal_connect(G_OBJECT(window), "delete_event", + G_CALLBACK(source_window_delete_cb), sourcewin); g_signal_connect(G_OBJECT(window), "key_press_event", G_CALLBACK(key_pressed), sourcewin); gtk_widget_realize(window); @@ -109,6 +110,7 @@ void source_window_show(SourceWindow *sourcewin) void source_window_destroy(SourceWindow *sourcewin) { + gtk_widget_destroy(sourcewin->window); g_free(sourcewin); } @@ -167,16 +169,19 @@ static void source_window_size_alloc_cb(GtkWidget *widget, prefs_common.sourcewin_height = allocation->height; } -static void source_window_destroy_cb(GtkWidget *widget, - SourceWindow *sourcewin) +static gint source_window_delete_cb(GtkWidget *widget, GdkEventAny *event, + SourceWindow *sourcewin) { source_window_destroy(sourcewin); + return TRUE; } static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, SourceWindow *sourcewin) { - if (event && event->keyval == GDK_Escape) - gtk_widget_destroy(sourcewin->window); + if (event && event->keyval == GDK_Escape) { + source_window_destroy(sourcewin); + return TRUE; + } return FALSE; } |