Вставить комментарий / отменить сбой в gtksourceview

Я только что наткнулся на тонкую проблему с моим комментарием вставки и отменой функций. Действия по воспроизведению:

  1. открыть редактор
  2. вставить комментарий где-нибудь в буфер исходного кода
  3. нажмите Ctrl+ Z, чтобы отменить
  4. вставьте другой комментарий, комментарий вставлен нормально, но в выводе появляется следующая ошибка:

    GtkSourceView-CRITICAL **: updated_changed_handler: утверждение "действие!= NULL" не выполнено

  5. вставить еще один комментарий, который также работает

  6. попробуйте отменить, нажав Ctrl+ Z, отмена не работает, и в stdout появляется следующая ошибка:

    GtkSourceView-CRITICAL **: gtk_source_undo_manager_undo_impl: утверждение `undo_action!= NULL'не выполнено

С этого момента отмена не работает.

Вот мой insert_comment():

    ...
tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(txtinput[current_tab]));
gtk_text_buffer_get_selection_bounds (tbuffer, &start, &end);

gtk_text_iter_set_line_offset (&start, 0);
gtk_text_buffer_insert (tbuffer, &start, "// \0", -1);
    ...

и мое определение отмены нажатия клавиш:

    case GDK_KEY_z:
        if (event -> state & GDK_CONTROL_MASK)
        {

            GtkSourceBuffer *sbuffer;

            sbuffer = GTK_SOURCE_BUFFER(gtk_text_view_get_buffer(GTK_TEXT_VIEW(txtinput[current_tab])));

            if (gtk_source_buffer_can_undo(sbuffer))
            {
                gtk_source_buffer_undo(sbuffer);
            }

            return TRUE;
        }

        break;

Я видел еще одного человека, у которого была такая же проблема, но решение не было представлено. У кого-нибудь еще возникла такая проблема?

Я попытался закомментировать соединение "изменено-изменено" в качестве шага по устранению неполадок, но проблема остается.

Любые идеи о том, что я могу делать не так? Благодарю.

0 ответов

Другие вопросы по тегам