static void notify_buffer_cb (GtkTextView *text_view, GParamSpec *pspec, IdeLineChangeGutterRenderer *self) { disconnect_buffer (self); connect_buffer (self); }
static void connect_view (IdeLineChangeGutterRenderer *self) { GtkTextView *view; view = gtk_source_gutter_renderer_get_view (GTK_SOURCE_GUTTER_RENDERER (self)); if (view) { g_set_weak_pointer (&self->text_view, view); self->text_view_notify_buffer = g_signal_connect (self->text_view, "notify::buffer", G_CALLBACK (notify_buffer_cb), self); connect_buffer (self); } }
static void view_notify_buffer (GtkSourceMap *map, GParamSpec *pspec, GtkSourceView *view) { GtkSourceMapPrivate *priv; GtkTextBuffer *buffer; priv = gtk_source_map_get_instance_private (map); if (priv->buffer != NULL) { disconnect_buffer (map); } buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); if (buffer != NULL) { connect_buffer (map, buffer); } }