【发布时间】:2012-12-14 14:39:33
【问题描述】:
我正在编写一个文本编辑器,但我似乎不了解 gtksourceview 和 undo。我希望撤消操作在每次调用时撤消单个操作,但它似乎想做的不止于此。
这是一个例子:
我输入两行:
第一行
第二行
然后我先上去删除“r”,然后按 ctrl+z 执行撤消。这是什么结果:
第一行
秒
文档说:
操作被定义为调用 gtk_text_buffer_begin_user_action() 和 gtk_text_buffer_end_user_action() 之间的操作组,或同一行上的类似编辑(插入或删除)序列。
我不明白恢复“r”和删除单词“line”是“在同一行上进行类似的编辑(插入或删除)”。
点击撤消非常令人迷惑,并且必须记住点击重做,因为撤消的操作比预期的要多。其他编辑器不这样操作,难道我只是执行错了吗?
这是我的撤消代码: 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);
}
【问题讨论】:
标签: gtk gtksourceview