我有一个 GtkTextView,我想在其中嵌入一些不可编辑的跨度,否则可以自由编辑的文档。问题是,如果我删除两个这样的跨度之间的所有文本,它们会“合并在一起”,因为我不能再在它们之间插入字符。这是一些演示问题的 ruby 代码:
require 'gtk3'
window = Gtk::Window.new("Text view")
window.set_size_request(800, 600)
window.signal_connect("delete-event") { |_widget| Gtk.main_quit }
textview = Gtk::TextView.new
buffer = textview.buffer
buffer.create_tag "locked", {"editable" => false, "background" => "light green"}
iter = buffer.get_iter_at_offset 0
buffer.insert iter, "hello", "locked"
buffer.insert iter, " "
buffer.insert iter, "world", "locked"
window.add(textview)
window.show_all
Gtk.main
由于我在 "hello" 和 "world" 之间添加了一个可编辑的 " ",我可以在它们之间插入文本,但是如果我删除了空格,我将无法再将其添加回来,即使 "hello" 和 "world" 是两个独立的锁定跨度。
编辑:为了澄清,通过“删除空间”我的意思是如果我单击文本区域并按退格键直到空间消失并且两个不可编辑的跨度连接在一起,我不能再单击它们之间的边界并将文本插入到将它们推开。