aboutsummaryrefslogtreecommitdiff
path: root/src/mainwindow.c
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2013-01-27 23:05:21 +0100
committerThomas White <taw@bitwiz.org.uk>2013-01-27 23:05:21 +0100
commitbb1735dcec49bb73ffb67af87cf5f7f8919af8b5 (patch)
tree767842d8e52f37064ff3ad8fceffa6cfea3c89c9 /src/mainwindow.c
parent0315095d2fb04f4cdf12c7484d8a0a89dff5329d (diff)
Slide change logic etc
Diffstat (limited to 'src/mainwindow.c')
-rw-r--r--src/mainwindow.c16
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);