[gtksourceview] Emit the change_buffer in the gutter renderer also when a view is set.
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview] Emit the change_buffer in the gutter renderer also when a view is set.
- Date: Thu, 24 Feb 2011 10:23:41 +0000 (UTC)
commit 9cb7d5fd6689c263b713f738cd070417eb43b8bf
Author: Paolo Borelli <pbor gnome org>
Date: Wed Feb 23 00:21:11 2011 +0100
Emit the change_buffer in the gutter renderer also when a view is set.
Before this was only emitted when the buffer in the view changed,
but makes sense also to emit it when the view is set.
gtksourceview/gtksourcegutterrenderer.c | 32 +++++++++++++++++++++---------
1 files changed, 22 insertions(+), 10 deletions(-)
---
diff --git a/gtksourceview/gtksourcegutterrenderer.c b/gtksourceview/gtksourcegutterrenderer.c
index af5ce39..8635531 100644
--- a/gtksourceview/gtksourcegutterrenderer.c
+++ b/gtksourceview/gtksourcegutterrenderer.c
@@ -89,22 +89,32 @@ gtk_source_gutter_renderer_finalize (GObject *object)
}
static void
-on_buffer_changed (GtkTextView *view,
- GParamSpec *spec,
- GtkSourceGutterRenderer *renderer)
+emit_buffer_changed (GtkTextView *view,
+ GtkSourceGutterRenderer *renderer)
{
GtkTextBuffer* buffer;
- if (GTK_SOURCE_GUTTER_RENDERER_GET_CLASS (renderer)->change_buffer)
+ buffer = gtk_text_view_get_buffer (view);
+
+ if (buffer != renderer->priv->buffer)
{
- GTK_SOURCE_GUTTER_RENDERER_GET_CLASS (renderer)->change_buffer (renderer,
- renderer->priv->buffer);
+ if (GTK_SOURCE_GUTTER_RENDERER_GET_CLASS (renderer)->change_buffer)
+ {
+ GTK_SOURCE_GUTTER_RENDERER_GET_CLASS (renderer)->change_buffer (renderer,
+ renderer->priv->buffer);
+ }
+
+ renderer->priv->buffer = buffer;
+ g_object_add_weak_pointer (G_OBJECT (buffer), (gpointer)&renderer->priv->buffer);
}
+}
- buffer = gtk_text_view_get_buffer (view);
-
- renderer->priv->buffer = buffer;
- g_object_add_weak_pointer (G_OBJECT (buffer), (gpointer)&renderer->priv->buffer);
+static void
+on_buffer_changed (GtkTextView *view,
+ GParamSpec *spec,
+ GtkSourceGutterRenderer *renderer)
+{
+ emit_buffer_changed (view, renderer);
}
static void
@@ -120,6 +130,8 @@ renderer_change_view_impl (GtkSourceGutterRenderer *renderer,
if (renderer->priv->view)
{
+ emit_buffer_changed (renderer->priv->view, renderer);
+
g_signal_connect (renderer->priv->view,
"notify::buffer",
G_CALLBACK (on_buffer_changed),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]