我刚刚偶然发现了插入注释和撤消功能的一个微妙问题。重现的步骤:
插入另一条评论,评论插入正常,但是以下错误显示在标准输出中:
GtkSourceView-CRITICAL **:modified_changed_handler:断言`action!= NULL'失败
插入另一条评论,也可以使用
尝试通过按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;
我看到另一个人遇到同样的问题,但没有提出任何解决方案。还有其他人有这个问题吗?
我尝试将“已修改更改”的信号连接作为故障排除步骤进行评论,但问题仍然存在。
关于我可能做错的任何想法?感谢。