aboutsummaryrefslogtreecommitdiff
path: root/src/slide_window.c
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2015-12-26 18:41:41 +0100
committerThomas White <taw@bitwiz.org.uk>2015-12-26 18:41:41 +0100
commit7bc3dc12dd7eb45a8bd28fdf020bcfd802ad91f0 (patch)
tree7895c4f3a06a55dfcac883ec7bcf4090e08c1645 /src/slide_window.c
parent79f3fdbb0b6e379c90eb3783d200e6d4249f4a3b (diff)
Open slide window on right slide
Diffstat (limited to 'src/slide_window.c')
-rw-r--r--src/slide_window.c18
1 files changed, 11 insertions, 7 deletions
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; i<p->num_slides; i++ ) {
+ if ( p->slides[i]->scblocks == sc_block_child(scblocks) ) {
+ sw->cur_slide = p->slides[i];
+ }
+ }
+
sw->show = NULL;
update_titlebar(p);