[gtksourceview/gtksourcecompletion] Use 'per buffer' completion mark
- From: Jesse van den Kieboom <jessevdk src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gtksourceview/gtksourcecompletion] Use 'per buffer' completion mark
- Date: Mon, 28 Sep 2009 18:54:53 +0000 (UTC)
commit 057db1b1eaf3634c289db4e5717d281885c83f1e
Author: Jesse van den Kieboom <jessevdk gnome org>
Date: Mon Sep 28 20:54:32 2009 +0200
Use 'per buffer' completion mark
.../words/gtksourcecompletionwords.c | 44 ++++++--------------
1 files changed, 13 insertions(+), 31 deletions(-)
---
diff --git a/gtksourceview/completion-providers/words/gtksourcecompletionwords.c b/gtksourceview/completion-providers/words/gtksourcecompletionwords.c
index 970f594..edf7ef1 100644
--- a/gtksourceview/completion-providers/words/gtksourcecompletionwords.c
+++ b/gtksourceview/completion-providers/words/gtksourcecompletionwords.c
@@ -33,6 +33,8 @@
#define BUFFER_KEY "GtkSourceCompletionWordsBufferKey"
+#define GET_WORDS_BUFFER(buf) (((BufferBinding *)g_object_get_data(G_OBJECT(buf), BUFFER_KEY))->buffer)
+
enum
{
PROP_0,
@@ -64,8 +66,6 @@ struct _GtkSourceCompletionWordsPrivate
GtkSourceCompletionWordsLibrary *library;
GList *buffers;
-
- GtkTextMark *completion_mark;
};
typedef struct
@@ -253,6 +253,7 @@ gtk_source_completion_words_populate (GtkSourceCompletionProvider *provider,
GtkTextIter iter;
gchar *word;
GtkTextBuffer *buffer;
+ GtkSourceCompletionWordsBuffer *buf;
gtk_source_completion_context_get_iter (context, &iter);
buffer = gtk_text_iter_get_buffer (&iter);
@@ -287,20 +288,10 @@ gtk_source_completion_words_populate (GtkSourceCompletionProvider *provider,
words->priv->word = word;
words->priv->word_len = strlen (word);
- if (words->priv->completion_mark == NULL)
- {
- words->priv->completion_mark =
- gtk_text_buffer_create_mark (buffer,
- NULL,
- &iter,
- TRUE);
- }
- else
- {
- gtk_text_buffer_move_mark (buffer,
- words->priv->completion_mark,
- &iter);
- }
+ buf = GET_WORDS_BUFFER (buffer);
+ gtk_text_buffer_move_mark (buffer,
+ gtk_source_completion_words_buffer_get_mark (buf),
+ &iter);
/* Do first right now */
if (add_in_idle (words))
@@ -348,13 +339,6 @@ gtk_source_completion_words_dispose (GObject *object)
provider->priv->library = NULL;
}
- if (provider->priv->completion_mark != NULL)
- {
- gtk_text_buffer_delete_mark (gtk_text_mark_get_buffer (provider->priv->completion_mark),
- provider->priv->completion_mark);
- provider->priv->completion_mark = NULL;
- }
-
G_OBJECT_CLASS (gtk_source_completion_words_parent_class)->dispose (object);
}
@@ -523,17 +507,15 @@ gtk_source_completion_words_get_start_iter (GtkSourceCompletionProvider *provide
GtkSourceCompletionProposal *proposal,
GtkTextIter *iter)
{
- GtkSourceCompletionWords *words = GTK_SOURCE_COMPLETION_WORDS (provider);
+ GtkTextBuffer *buffer;
+ GtkSourceCompletionWordsBuffer *buf;
- if (words->priv->completion_mark == NULL ||
- gtk_text_mark_get_deleted (words->priv->completion_mark))
- {
- return FALSE;
- }
+ buffer = gtk_text_iter_get_buffer (iter);
+ buf = GET_WORDS_BUFFER (buffer);
- gtk_text_buffer_get_iter_at_mark (gtk_text_mark_get_buffer (words->priv->completion_mark),
+ gtk_text_buffer_get_iter_at_mark (buffer,
iter,
- words->priv->completion_mark);
+ gtk_source_completion_words_buffer_get_mark (buf));
return TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]