[gnome-builder] libide: redraw gutters when line flags change
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] libide: redraw gutters when line flags change
- Date: Mon, 23 Mar 2015 23:45:10 +0000 (UTC)
commit 8e782919fef70bb7059809af9c77dda1b97dd1f2
Author: Christian Hergert <christian hergert me>
Date: Thu Feb 26 17:14:25 2015 -0800
libide: redraw gutters when line flags change
Both the line added/changed gutter and the diagnostics gutter need to be
updated when the line flags change.
libide/ide-source-view.c | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
---
diff --git a/libide/ide-source-view.c b/libide/ide-source-view.c
index f9026e6..1e2f550 100644
--- a/libide/ide-source-view.c
+++ b/libide/ide-source-view.c
@@ -61,6 +61,7 @@ typedef struct
gulong buffer_delete_range_handler;
gulong buffer_insert_text_after_handler;
gulong buffer_insert_text_handler;
+ gulong buffer_line_flags_changed_handler;
gulong buffer_mark_set_handler;
gulong buffer_notify_file_handler;
gulong buffer_notify_highlight_diagnostics_handler;
@@ -637,6 +638,19 @@ ide_source_view__buffer_notify_highlight_diagnostics_cb (IdeSourceView *self,
}
static void
+ide_source_view__buffer_line_flags_changed_cb (IdeSourceView *self,
+ IdeBuffer *buffer)
+{
+ IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
+
+ g_assert (IDE_IS_SOURCE_VIEW (self));
+ g_assert (IDE_IS_BUFFER (buffer));
+
+ gtk_source_gutter_renderer_queue_draw (priv->line_change_renderer);
+ gtk_source_gutter_renderer_queue_draw (priv->line_diagnostics_renderer);
+}
+
+static void
ide_source_view_connect_buffer (IdeSourceView *self,
IdeBuffer *buffer)
{
@@ -652,6 +666,13 @@ ide_source_view_connect_buffer (IdeSourceView *self,
self,
G_CONNECT_SWAPPED);
+ priv->buffer_line_flags_changed_handler =
+ g_signal_connect_object (buffer,
+ "line-flags-changed",
+ G_CALLBACK (ide_source_view__buffer_line_flags_changed_cb),
+ self,
+ G_CONNECT_SWAPPED);
+
priv->buffer_notify_highlight_diagnostics_handler =
g_signal_connect_object (buffer,
"notify::highlight-diagnostics",
@@ -726,6 +747,7 @@ ide_source_view_disconnect_buffer (IdeSourceView *self,
ide_clear_signal_handler (buffer, &priv->buffer_delete_range_handler);
ide_clear_signal_handler (buffer, &priv->buffer_insert_text_after_handler);
ide_clear_signal_handler (buffer, &priv->buffer_insert_text_handler);
+ ide_clear_signal_handler (buffer, &priv->buffer_line_flags_changed_handler);
ide_clear_signal_handler (buffer, &priv->buffer_mark_set_handler);
ide_clear_signal_handler (buffer, &priv->buffer_notify_highlight_diagnostics_handler);
ide_clear_signal_handler (buffer, &priv->buffer_notify_language_handler);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]