From bcc9f89407ed1e632da249623fd63e493439ec39 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Wed, 1 Jun 2011 18:35:40 +0200 Subject: Make escape in main window also exit slideshow --- src/mainwindow.c | 5 +++++ src/slideshow.c | 12 ++++++++++-- src/slideshow.h | 2 ++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/mainwindow.c b/src/mainwindow.c index 1997951..289e875 100644 --- a/src/mainwindow.c +++ b/src/mainwindow.c @@ -322,6 +322,11 @@ static gboolean key_press_sig(GtkWidget *da, GdkEventKey *event, next_slide_sig(NULL, p); break; + case GDK_KEY_Escape : + if ( p->slideshow != NULL ) end_slideshow(p); + p->editing_object = NULL; + break; + } /* FIXME: Invalidate only the necessary region */ diff --git a/src/slideshow.c b/src/slideshow.c index 933a4dd..a7c98b0 100644 --- a/src/slideshow.c +++ b/src/slideshow.c @@ -120,6 +120,15 @@ static gint next_slide_sig(GtkWidget *widget, struct presentation *p) } +void end_slideshow(struct presentation *p) +{ + gtk_widget_destroy(p->ss_drawingarea); + gtk_widget_destroy(p->slideshow); + p->slideshow = NULL; + notify_slide_changed(p); +} + + static gboolean ss_key_press_sig(GtkWidget *da, GdkEventKey *event, struct presentation *p) { @@ -141,8 +150,7 @@ static gboolean ss_key_press_sig(GtkWidget *da, GdkEventKey *event, break; case GDK_KEY_Escape : - gtk_widget_destroy(p->ss_drawingarea); - gtk_widget_destroy(p->slideshow); + end_slideshow(p); break; } diff --git a/src/slideshow.h b/src/slideshow.h index 635344c..5b332c7 100644 --- a/src/slideshow.h +++ b/src/slideshow.h @@ -32,4 +32,6 @@ extern void try_start_slideshow(struct presentation *p); extern void notify_slideshow_slide_changed(struct presentation *p); +extern void end_slideshow(struct presentation *p); + #endif /* SLIDESHOW_H */ -- cgit v1.2.3