diff options
author | Thomas White <taw@bitwiz.org.uk> | 2013-01-27 23:05:21 +0100 |
---|---|---|
committer | Thomas White <taw@bitwiz.org.uk> | 2013-01-27 23:05:21 +0100 |
commit | bb1735dcec49bb73ffb67af87cf5f7f8919af8b5 (patch) | |
tree | 767842d8e52f37064ff3ad8fceffa6cfea3c89c9 /src/mainwindow.c | |
parent | 0315095d2fb04f4cdf12c7484d8a0a89dff5329d (diff) |
Slide change logic etc
Diffstat (limited to 'src/mainwindow.c')
-rw-r--r-- | src/mainwindow.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/src/mainwindow.c b/src/mainwindow.c index 109a940..6f6a23a 100644 --- a/src/mainwindow.c +++ b/src/mainwindow.c @@ -43,18 +43,12 @@ static void rerender_slide(struct presentation *p, PangoContext *pc) int w, h; struct slide *s = p->cur_edit_slide; - if ( s->rendered_thumb != NULL ) { - cairo_surface_destroy(s->rendered_thumb); - } + free_render_buffers(s); w = p->thumb_slide_width; h = (p->slide_height/p->slide_width) * w; s->rendered_thumb = render_slide(s, w, h); - if ( s->rendered_edit != NULL ) { - cairo_surface_destroy(s->rendered_edit); - } - w = p->edit_slide_width; h = (p->slide_height/p->slide_width) * w; s->rendered_edit = render_slide(s, w, h); @@ -62,10 +56,6 @@ static void rerender_slide(struct presentation *p, PangoContext *pc) /* Is this slide currently being displayed on the projector? */ if ( s == s->parent->cur_proj_slide ) { - if ( s->rendered_proj != NULL ) { - cairo_surface_destroy(s->rendered_proj); - } - w = s->parent->proj_slide_width; h = (s->parent->slide_height/s->parent->slide_width) * w; s->rendered_proj = render_slide(s, w, h); @@ -429,9 +419,11 @@ static gint start_slideshow_sig(GtkWidget *widget, struct presentation *p) void notify_slide_changed(struct presentation *p, struct slide *np) { + free_render_buffers(p->cur_edit_slide); p->cur_edit_slide = np; + rerender_slide(p, p->pc); - /* FIXME: Free old rendered stuff */ + set_selection(p, NULL); update_toolbar(p); redraw(p); |