diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-10-17 06:59:31 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-10-17 06:59:31 +0000 |
commit | 2d4514560cab30e8d856eadfaa16bff7fb6ea6b3 (patch) | |
tree | 4d83129c465f681f783ab62b18c2f6b5efa60370 /src | |
parent | 5c0a3497e9d19f1fc1b26c1ec335d82b1f3ac2f1 (diff) |
handle destroy event properly.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@653 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src')
-rw-r--r-- | src/trayicon.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/trayicon.c b/src/trayicon.c index 02f8fb2b..53118fc9 100644 --- a/src/trayicon.c +++ b/src/trayicon.c @@ -45,10 +45,14 @@ static GtkTooltips *trayicon_tip; static void trayicon_button_pressed (GtkWidget *widget, GdkEventButton *event, gpointer data); +static void trayicon_destroy_cb (GtkWidget *widget, + gpointer data); GtkWidget *trayicon_create(MainWindow *mainwin) { trayicon = GTK_WIDGET(egg_tray_icon_new("Sylpheed")); + g_signal_connect(G_OBJECT(trayicon), "destroy", + G_CALLBACK(trayicon_destroy_cb), mainwin); eventbox = gtk_event_box_new(); gtk_container_add(GTK_CONTAINER(trayicon), eventbox); @@ -92,6 +96,17 @@ static void trayicon_button_pressed(GtkWidget *widget, GdkEventButton *event, gtk_window_present(GTK_WINDOW(mainwin->window)); } +static gboolean trayicon_restore(gpointer data) +{ + trayicon_create((MainWindow *)data); + return FALSE; +} + +static void trayicon_destroy_cb(GtkWidget *widget, gpointer data) +{ + g_idle_add(trayicon_restore, data); +} + #else /* GDK_WINDOWING_X11 */ GtkWidget *trayicon_create(MainWindow *mainwin) |