CxIterator i = cxListIterator(embedded_objects->objects);
cx_foreach(EmbeddedWidget *, w, i) {
- gtk_text_view_add_child_at_anchor(textview, w->widget, w->anchor);
+ if(!gtk_text_child_anchor_get_deleted(w->anchor)) {
+ gtk_text_view_add_child_at_anchor(textview, w->widget, w->anchor);
+ }
}
}
const GtkTextIter *end,
NoteEditor *editor)
{
- BufferEmbeddedObjects *em = g_object_get_data(G_OBJECT(buffer), "embedded");
- if(!em) {
- return;
- }
- GtkTextIter iter = *start;
- while (!gtk_text_iter_equal(&iter, end)) {
- GtkTextChildAnchor *anchor = gtk_text_iter_get_child_anchor(&iter);
- if(anchor) {
- em_remove_anchor(em, anchor);
- }
- gtk_text_iter_forward_cursor_position(&iter);
- }
}
static gboolean path_is_image_file(cxstring path) {
em->anchor = anchor;
em->restore = NULL;
g_object_ref(image);
+ g_object_ref(anchor);
BufferEmbeddedObjects *embedded_objects = g_object_get_data(G_OBJECT(buffer), "embedded");
cxListAdd(embedded_objects->objects, em);
static void embedded_widget_free(EmbeddedWidget *w) {
g_object_unref(w->widget);
+ g_object_unref(w->anchor);
free(w);
}