From 7bc3dc12dd7eb45a8bd28fdf020bcfd802ad91f0 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sat, 26 Dec 2015 18:41:41 +0100 Subject: Open slide window on right slide --- src/slide_window.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'src/slide_window.c') diff --git a/src/slide_window.c b/src/slide_window.c index 3e167d7..f44a699 100644 --- a/src/slide_window.c +++ b/src/slide_window.c @@ -538,7 +538,7 @@ GActionEntry sw_entries[] = { }; -SlideWindow *slide_window_open(struct presentation *p, GApplication *app) +SlideWindow *slide_window_open(struct presentation *p, SCBlock *scblocks) { GtkWidget *window; GtkWidget *vbox; @@ -549,20 +549,24 @@ SlideWindow *slide_window_open(struct presentation *p, GApplication *app) SCBlock *stylesheets[2]; GtkWidget *image; - if ( p->slidewindow != NULL ) { - fprintf(stderr, "Slide window is already open!\n"); - return p->slidewindow; - } - sw = calloc(1, sizeof(SlideWindow)); if ( sw == NULL ) return NULL; - window = gtk_application_window_new(GTK_APPLICATION(app)); + window = gtk_window_new(GTK_WINDOW_TOPLEVEL); g_action_map_add_action_entries(G_ACTION_MAP(window), sw_entries, G_N_ELEMENTS(sw_entries), sw); sw->window = window; sw->p = p; + + /* FIXME: Horrible bodge. */ + int i; sw->cur_slide = p->slides[0]; + for ( i=0; inum_slides; i++ ) { + if ( p->slides[i]->scblocks == sc_block_child(scblocks) ) { + sw->cur_slide = p->slides[i]; + } + } + sw->show = NULL; update_titlebar(p); -- cgit v1.2.3