gint remaining;
guint page;
guint pages;
+ guint timeout;
gboolean running;
};
ev_timer->priv->pages = 0;
ev_timer->priv->remaining = 0;
ev_timer->priv->time = 0;
+ ev_timer->priv->timeout = 0;
ev_timer->priv->running = FALSE;
}
{
ev_timer->priv->remaining = (ev_timer->priv->time)*60;
ev_timer->priv->running = TRUE;
- g_timeout_add_seconds (1, timeout_cb, ev_timer);
+ ev_timer->priv->timeout = g_timeout_add_seconds (1, timeout_cb, ev_timer);
}
}
ev_timer->priv->time = (time < -1)? -1:time;
}
+static void
+ev_presentation_timer_dispose (GObject *gobject)
+{
+ EvPresentationTimer *ev_timer = EV_PRESENTATION_TIMER (gobject);
+ EvPresentationTimerPrivate *priv = EV_PRESENTATION_TIMER (ev_timer)->priv;
+ if (priv->timeout > 0)
+ g_source_remove (priv->timeout);
+ G_OBJECT_CLASS (ev_presentation_timer_parent_class)->dispose (gobject);
+}
+
static void
ev_presentation_timer_class_init (EvPresentationTimerClass *klass)
{
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
g_type_class_add_private (object_class, sizeof (EvPresentationTimerPrivate));
widget_class->draw = ev_presentation_timer_draw;
- /*object_class->finalize = ev_presentation_timer_finalize;*/
+ object_class->dispose = ev_presentation_timer_dispose;
}
GtkWidget *