Mercurial > geeqie
diff src/img-view.c @ 89:b3149a34d0dd
Sat Oct 28 14:41:10 2006 John Ellis <johne@verizon.net>
* img-view.c: Use correct method to close the window using Escape key,
fixes bug #1231845. Also added more robust method to update window
list when a window is closed so this doesn't happen again.
* slideshow.c: Add sanity checks to exported functions to check for
NULL SlideShow pointers, to match rest of coding style.
author | gqview |
---|---|
date | Sat, 28 Oct 2006 18:49:38 +0000 |
parents | cade6a52a165 |
children | d063f97503b7 |
line wrap: on
line diff
--- a/src/img-view.c Sat Oct 28 00:03:15 2006 +0000 +++ b/src/img-view.c Sat Oct 28 18:49:38 2006 +0000 @@ -558,7 +558,7 @@ } else { - gtk_widget_destroy(vw->window); + view_window_close(vw); } break; case GDK_Menu: @@ -767,15 +767,24 @@ if (vw->ss) slideshow_free(vw->ss); } -static void view_window_close(ViewWindow *vw) +static void view_window_destroy_cb(GtkWidget *widget, gpointer data) { + ViewWindow *vw = data; + view_window_list = g_list_remove(view_window_list, vw); view_slideshow_stop(vw); + fullscreen_stop(vw->fs); + + path_list_free(vw->list); + g_free(vw); +} + +static void view_window_close(ViewWindow *vw) +{ + view_slideshow_stop(vw); view_fullscreen_toggle(vw, TRUE); gtk_widget_destroy(vw->window); - path_list_free(vw->list); - g_free(vw); } static gint view_window_delete_cb(GtkWidget *w, GdkEventAny *event, gpointer data) @@ -832,6 +841,8 @@ view_image_set_buttons(vw, vw->imd); + g_signal_connect(G_OBJECT(vw->window), "destroy", + G_CALLBACK(view_window_destroy_cb), vw); g_signal_connect(G_OBJECT(vw->window), "delete_event", G_CALLBACK(view_window_delete_cb), vw); g_signal_connect(G_OBJECT(vw->window), "key_press_event",