aboutsummaryrefslogtreecommitdiff
path: root/src/narrative_window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/narrative_window.c')
-rw-r--r--src/narrative_window.c28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/narrative_window.c b/src/narrative_window.c
index 807305f..6e09d71 100644
--- a/src/narrative_window.c
+++ b/src/narrative_window.c
@@ -217,30 +217,46 @@ static void ss_prev_slide(SlideShow *ss, void *vp)
static void first_slide_sig(GSimpleAction *action, GVariant *parameter,
gpointer vp)
{
- //NarrativeWindow *nw = vp;
+ NarrativeWindow *nw = vp;
+ SCBlock *tt;
+
+ tt = first_slide(nw->p);
+ if ( tt == NULL ) return; /* Fail */
+ nw->sel_slide = tt;
+ if ( slideshow_linked(nw->show) ) {
+ change_proj_slide(nw->show, nw->sel_slide);
+ } /* else leave the slideshow alone */
+ update_toolbar(nw);
}
static void prev_slide_sig(GSimpleAction *action, GVariant *parameter,
gpointer vp)
{
- //NarrativeWindow *nw = vp;
- //ss_prev_slide(NULL, vp);
+ ss_prev_slide(NULL, vp);
}
static void next_slide_sig(GSimpleAction *action, GVariant *parameter,
gpointer vp)
{
- //NarrativeWindow *nw = vp;
- //ss_next_slide(NULL, vp);
+ ss_next_slide(NULL, vp);
}
static void last_slide_sig(GSimpleAction *action, GVariant *parameter,
gpointer vp)
{
- //NarrativeWindow *nw = vp;
+ NarrativeWindow *nw = vp;
+ SCBlock *tt;
+
+ tt = last_slide(nw->p);
+ if ( tt == NULL ) return; /* Fail */
+ nw->sel_slide = tt;
+ if ( slideshow_linked(nw->show) ) {
+ change_proj_slide(nw->show, nw->sel_slide);
+ } /* else leave the slideshow alone */
+ update_toolbar(nw);
}