aboutsummaryrefslogtreecommitdiff
path: root/src/sourcewindow.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-06-06 11:13:04 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-06-06 11:13:04 +0000
commit7f0a8d80fdb7ad6a254bbfa5eb8af0f21f206067 (patch)
tree16d8e5aa74c20cf0bf29df63e57fa3491e7e68cf /src/sourcewindow.c
parent5db09c44a0879e21a41615a05b6a72f5c2b319d5 (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.c19
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;
}