2

コメントの挿入と元に戻す機能で微妙な問題に遭遇しました。再現する手順:

  1. エディターを開く
  2. ソースバッファのどこかにコメントを挿入する
  3. 元に戻すには ctrl+z を押します
  4. 別のコメントを挿入すると、コメントは正常に挿入されますが、標準出力に次のエラーが表示されます。

    GtkSourceView-CRITICAL **: modified_changed_handler: アサーション `action != 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;

これと同じ問題を抱えている別の人を見ましたが、解決策は提示されませんでした. 他の誰かがこの問題を抱えていますか?

トラブルシューティングの手順として「変更 - 変更」信号接続をコメントアウトしようとしましたが、問題は解決しません。

私が間違っているかもしれないことについてのアイデアはありますか? ありがとう。

4

0 に答える 0