Added guards, fixed idle handler removal on finalization
This commit is contained in:
parent
e549ae9b9a
commit
8fe7604cd5
|
@ -49,6 +49,10 @@ gm_text_scroller_finalize(GObject *object) {
|
|||
g_object_unref(obj->priv->text_buffer);
|
||||
}
|
||||
|
||||
if (obj->priv->idle_handler) {
|
||||
g_source_remove(obj->priv->idle_handler);
|
||||
}
|
||||
|
||||
g_signal_handlers_disconnect_by_func(obj->priv->text_view,
|
||||
G_CALLBACK(on_gm_text_scroller_text_view_notify), obj);
|
||||
g_signal_handlers_disconnect_by_func(obj->priv->text_view,
|
||||
|
@ -113,6 +117,8 @@ gm_text_scroller_scroll_end(GmTextScroller *scroller) {
|
|||
GtkTextMark *mark;
|
||||
GtkTextIter iter;
|
||||
|
||||
g_return_if_fail(GTK_IS_TEXT_BUFFER(scroller->priv->text_buffer));
|
||||
|
||||
mark = gtk_text_buffer_get_mark(scroller->priv->text_buffer,
|
||||
"end-of-buffer");
|
||||
|
||||
|
@ -131,6 +137,8 @@ gm_text_scroller_scroll_begin(GmTextScroller *scroller) {
|
|||
GtkTextMark *mark;
|
||||
GtkTextIter iter;
|
||||
|
||||
g_return_if_fail(GTK_IS_TEXT_BUFFER(scroller->priv->text_buffer));
|
||||
|
||||
mark = gtk_text_buffer_get_mark(scroller->priv->text_buffer,
|
||||
"begin-of-buffer");
|
||||
|
||||
|
@ -241,13 +249,18 @@ on_gm_text_scroller_text_view_notify(GtkTextView *text_view, GParamSpec *arg1,
|
|||
void
|
||||
on_gm_text_scroller_text_view_style_set(GtkTextView *view,
|
||||
GtkStyle *previous_style, GmTextScroller *scroller) {
|
||||
|
||||
g_return_if_fail(GM_IS_TEXT_SCROLLER(scroller));
|
||||
|
||||
gm_text_scroller_update_character_height(scroller);
|
||||
}
|
||||
|
||||
void
|
||||
on_gm_text_scroller_text_buffer_changed(GtkTextBuffer *text_buffer,
|
||||
GmTextScroller *scroller) {
|
||||
// Changed...
|
||||
|
||||
g_return_if_fail(GM_IS_TEXT_SCROLLER(scroller));
|
||||
|
||||
gm_text_scroller_prepare(scroller);
|
||||
}
|
||||
|
||||
|
@ -255,5 +268,6 @@ void
|
|||
on_gm_text_scroller_text_view_destroy(GtkTextView *text_view,
|
||||
GmTextScroller *scroller) {
|
||||
// Remove ourselfs when the text view dies
|
||||
|
||||
g_object_unref(scroller);
|
||||
}
|
||||
|
|
Reference in New Issue