CompletionProvider: key_activates and populate methods do not get called
The do_key_activates
and the do_populate
virtual methods does not seem to being called.
#!/usr/bin/env python3
import gi
gi.require_version("Gtk", "4.0")
gi.require_version("GtkSource", "5")
from gi.repository import Gio
from gi.repository import Gtk
from gi.repository import GObject
from gi.repository import GtkSource
class ApplicationWindow(Gtk.ApplicationWindow):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.set_default_size(600, 300)
source_view = GtkSource.View()
provider = ExampleCompletionProvider()
view_completion = source_view.get_completion()
view_completion.add_provider(provider)
lm = GtkSource.LanguageManager()
textbuffer = GtkSource.Buffer()
source_view.set_buffer(textbuffer)
self.set_child(source_view)
class ExampleCompletionProvider(GObject.GObject, GtkSource.CompletionProvider):
def do_activate(self, context, proposal):
print("do_activate")
def do_display(self, context, proposal, cell):
print("do_display")
def do_get_priority(self, context):
return 1
def do_get_title(self):
return "Example"
def do_is_trigger(self, textiter, ch):
print("do_is_trigger", ch)
return True
# Never called
def do_key_activates(self, context, proposal, keyval, state):
print("do_key_activates")
return True
# Never called
def do_populate(self, context, error):
print("do_populate")
def do_populate_async(self, context, cancellable, callback, data):
print("do_populate_async")
def do_populate_finish(self, result):
print("do_populate_finish")
def do_refilter(self, context, model):
print("do_refilter")
def on_activate(app):
win = ApplicationWindow(application=app)
win.present()
if __name__ == "__main__":
app = Gtk.Application()
app.connect("activate", on_activate)
app.run(None)
gir1.2-gtksource-5: 5.6.1-1
libgtksourceview-5-0: 5.6.1-1
AttributeError: 'super' object has no attribute 'populate'
Edited by Fred