首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gtksourceview撤消,撤消的次数超出预期

gtksourceview撤消,撤消的次数超出预期
EN

Stack Overflow用户
提问于 2012-12-14 11:03:59
回答 1查看 207关注 0票数 1

我正在写一个文本编辑器,我似乎不理解一些关于gtksourceview和undo的东西。我希望撤销操作为每个调用撤销一个操作,但它似乎想要做更多的事情。

下面是一个示例:

我输入两行:

第一行

第二行

然后,我先删除其中的"r“,然后按ctrl+z执行撤消操作。结果是:

第一行

第二

文档中写道:

操作被定义为对gtk_text_buffer_begin_user_action()和gtk_text_buffer_end_user_action()的调用之间的一组操作,或者同一行上的一系列相似的编辑(插入或删除)。

我不明白恢复"r“和删除单词"line”是“在同一行上进行类似的编辑(插入或删除)”。

点击撤销并必须记住点击重做是非常令人迷惑的,因为被撤销的比预期的要多。其他编辑器不是这样做的,所以我是不是实现错了?

这是我的撤销代码: GtkSourceBuffer *sbuffer;

代码语言:javascript
复制
            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);
            }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-14 13:20:09

Undo在GtkSourceView中是“免费的”,从您的描述来看,似乎发生了两个undo操作,所以您很可能没有通知Gtk您处理了一个事件(通过返回true),而且它也在使用自己的undo。但在任何情况下,您看到的行为都是不正常的。你可以尝试同样的方法,例如gedit来显示这一点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13872051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档