aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.me.uk>2019-05-01 15:47:19 +0200
committerThomas White <taw@bitwiz.me.uk>2019-05-01 15:47:19 +0200
commit62dba2de99eff687a74c328b485f70802e8d5bfa (patch)
tree48328406147f2ef45b579978a73107fc3f8bb63a
parent693a3af7be9173ea67c911ed99ff0570762c6641 (diff)
Remove slide windows from narrative window's record when they are closed
-rw-r--r--src/narrative_window.c22
-rw-r--r--src/slide_window.c2
2 files changed, 23 insertions, 1 deletions
diff --git a/src/narrative_window.c b/src/narrative_window.c
index b8792c0..cd67706 100644
--- a/src/narrative_window.c
+++ b/src/narrative_window.c
@@ -111,6 +111,26 @@ static void update_titlebar(NarrativeWindow *nw)
}
}
+
+void narrative_window_sw_closed(NarrativeWindow *nw, SlideWindow *sw)
+{
+ int i;
+ int found = 0;
+
+ for ( i=0; i<nw->n_slidewindows; i++ ) {
+ if ( nw->slidewindows[i] == sw ) {
+ int j;
+ for ( j=i; j<nw->n_slidewindows-1; j++ ) {
+ nw->slidewindows[j] = nw->slidewindows[j+1];
+ }
+ nw->n_slidewindows--;
+ found = 1;
+ }
+ }
+
+ if ( !found ) {
+ fprintf(stderr, "Couldn't find slide window in narrative record\n");
+ }
}
@@ -499,6 +519,8 @@ static gboolean nw_double_click_sig(GtkWidget *da, gpointer *pslide,
if ( nw->n_slidewindows < 16 ) {
nw->slidewindows[nw->n_slidewindows++] = slide_window_open(nw->n, slide,
nw, nw->app);
+ } else {
+ fprintf(stderr, _("Too many slide windows\n"));
}
} else {
sc_slideshow_set_slide(nw->show, slide);
diff --git a/src/slide_window.c b/src/slide_window.c
index ca84b90..5bf9f52 100644
--- a/src/slide_window.c
+++ b/src/slide_window.c
@@ -163,7 +163,7 @@ static void last_slide_sig(GSimpleAction *action, GVariant *parameter,
static gboolean sw_close_sig(GtkWidget *w, SlideWindow *sw)
{
- //narrative_window_sw_closed(sw->n->narrative_window, sw);
+ narrative_window_sw_closed(sw->parent, sw);
return FALSE;
}