[gtksourceview/gtksourcecompletion] Store completion mark in buffer



commit 842c00242a7a1b6c3655e6202bcf0e1782f6917b
Author: Jesse van den Kieboom <jessevdk gnome org>
Date:   Mon Sep 28 20:53:35 2009 +0200

    Store completion mark in buffer

 .../words/gtksourcecompletionwordsbuffer.c         |   20 ++++++++++++++++++++
 .../words/gtksourcecompletionwordsbuffer.h         |    2 ++
 2 files changed, 22 insertions(+), 0 deletions(-)
---
diff --git a/gtksourceview/completion-providers/words/gtksourcecompletionwordsbuffer.c b/gtksourceview/completion-providers/words/gtksourcecompletionwordsbuffer.c
index 6f042b6..bb1e688 100644
--- a/gtksourceview/completion-providers/words/gtksourcecompletionwordsbuffer.c
+++ b/gtksourceview/completion-providers/words/gtksourcecompletionwordsbuffer.c
@@ -59,6 +59,8 @@ struct _GtkSourceCompletionWordsBufferPrivate
 	
 	guint lock_handler_id;
 	guint unlock_handler_id;
+	
+	GtkTextMark *mark;
 };
 
 G_DEFINE_TYPE (GtkSourceCompletionWordsBuffer, gtk_source_completion_words_buffer, G_TYPE_OBJECT)
@@ -103,6 +105,13 @@ gtk_source_completion_words_buffer_dispose (GObject *object)
 	GtkSourceCompletionWordsBuffer *buffer =
 			GTK_SOURCE_COMPLETION_WORDS_BUFFER (object);
 
+	if (buffer->priv->mark)
+	{
+		gtk_text_buffer_delete_mark (gtk_text_mark_get_buffer (buffer->priv->mark),
+		                             buffer->priv->mark);
+		buffer->priv->mark = NULL;
+	}
+
 	if (buffer->priv->buffer)
 	{
 		gint i;
@@ -625,6 +634,7 @@ gtk_source_completion_words_buffer_new (GtkSourceCompletionWordsLibrary *library
                                         GtkTextBuffer                   *buffer)
 {
 	GtkSourceCompletionWordsBuffer *ret;
+	GtkTextIter iter;
 	
 	g_return_val_if_fail (GTK_IS_SOURCE_COMPLETION_WORDS_LIBRARY (library), NULL);
 	g_return_val_if_fail (GTK_IS_TEXT_BUFFER (buffer), NULL);
@@ -646,6 +656,9 @@ gtk_source_completion_words_buffer_new (GtkSourceCompletionWordsLibrary *library
 			                  G_CALLBACK (on_library_unlock),
 			                  ret);
 	
+	gtk_text_buffer_get_start_iter (buffer, &iter);
+	ret->priv->mark = gtk_text_buffer_create_mark (buffer, NULL, &iter, TRUE);
+	
 	connect_buffer (ret);
 
 	return ret;
@@ -679,3 +692,10 @@ gtk_source_completion_words_buffer_set_minimum_word_size (GtkSourceCompletionWor
 	buffer->priv->minimum_word_size = size;
 }
 
+GtkTextMark *
+gtk_source_completion_words_buffer_get_mark (GtkSourceCompletionWordsBuffer *buffer)
+{
+	g_return_val_if_fail (GTK_IS_SOURCE_COMPLETION_WORDS_BUFFER (buffer), NULL);
+	
+	return buffer->priv->mark;
+}
diff --git a/gtksourceview/completion-providers/words/gtksourcecompletionwordsbuffer.h b/gtksourceview/completion-providers/words/gtksourcecompletionwordsbuffer.h
index 2703f04..1ff3389 100644
--- a/gtksourceview/completion-providers/words/gtksourcecompletionwordsbuffer.h
+++ b/gtksourceview/completion-providers/words/gtksourcecompletionwordsbuffer.h
@@ -66,6 +66,8 @@ void		 gtk_source_completion_words_buffer_set_scan_batch_size (GtkSourceCompleti
 void		 gtk_source_completion_words_buffer_set_minimum_word_size (GtkSourceCompletionWordsBuffer *buffer,
                                                                            guint                           size);
 
+GtkTextMark     *gtk_source_completion_words_buffer_get_mark	(GtkSourceCompletionWordsBuffer *buffer);
+
 G_END_DECLS
 
 #endif /* __GTK_SOURCE_COMPLETION_WORDS_BUFFER_H__ */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]