BTreeView *views;
GSList *tag_infos;
guint tag_changed_handler;
- guint tag_removed_handler;
+
/* Incremented when a segment with a byte size > 0
* is added to or removed from the tree (i.e. the
* length of a line may have changed, and lines may
GtkTextTag *tag,
gboolean size_changed,
GtkTextBTree *tree);
-static void tag_removed_cb (GtkTextTagTable *table,
- GtkTextTag *tag,
- GtkTextBTree *tree);
static void cleanup_line (GtkTextLine *line);
static void recompute_node_counts (GtkTextBTree *tree,
GtkTextBTreeNode *node);
G_CALLBACK (tag_changed_cb),
tree);
- tree->tag_removed_handler = g_signal_connect (G_OBJECT (tree->table),
- "tag_removed",
- G_CALLBACK (tag_removed_cb),
- tree);
-
tree->mark_table = g_hash_table_new (g_str_hash, g_str_equal);
tree->child_anchor_table = NULL;
g_signal_handler_disconnect (G_OBJECT (tree->table),
tree->tag_changed_handler);
- g_signal_handler_disconnect (G_OBJECT (tree->table),
- tree->tag_removed_handler);
-
g_object_unref (G_OBJECT (tree->table));
g_free (tree);
void
_gtk_text_btree_insert (GtkTextIter *iter,
- const gchar *text,
- gint len)
+ const gchar *text,
+ gint len)
{
GtkTextLineSegment *prev_seg; /* The segment just before the first
* new segment (NULL means new segment
/* extract iterator info */
tree = _gtk_text_iter_get_btree (iter);
line = _gtk_text_iter_get_text_line (iter);
+
start_line = line;
start_byte_index = gtk_text_iter_get_line_index (iter);
- /* Get our insertion segment split */
+ /* Get our insertion segment split. Note this assumes line allows
+ * char insertions, which isn't true of the "last" line. But iter
+ * should not be on that line, as we assert here.
+ */
+ g_assert (!_gtk_text_line_is_last (line, tree));
prev_seg = gtk_text_line_segment_split (iter);
cur_seg = prev_seg;
}
}
-static void
-tag_removed_cb (GtkTextTagTable *table,
- GtkTextTag *tag,
- GtkTextBTree *tree)
+void
+_gtk_text_btree_notify_will_remove_tag (GtkTextBTree *tree,
+ GtkTextTag *tag)
{
/* Remove the tag from the tree */
list = g_slist_next (list);
}
-
- g_assert_not_reached ();
- return;
}
static void