From cbda10a798e22782ed1a214c87e0856fe187bc28 Mon Sep 17 00:00:00 2001 From: eidheim Date: Sun, 7 May 2023 12:54:14 +0200 Subject: [PATCH] Fixed autocomplete initialization on text removal --- src/autocomplete.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/autocomplete.cpp b/src/autocomplete.cpp index 2ea5d87..46f23a1 100644 --- a/src/autocomplete.cpp +++ b/src/autocomplete.cpp @@ -3,7 +3,7 @@ Autocomplete::Autocomplete(Source::BaseView *view, bool &interactive_completion, guint &last_keyval, bool pass_buffer_and_strip_word, bool use_thread) : view(view), interactive_completion(interactive_completion), pass_buffer_and_strip_word(pass_buffer_and_strip_word), use_thread(use_thread) { - view->get_buffer()->signal_changed().connect([this, &last_keyval] { + view->get_buffer()->signal_insert().connect([this, &last_keyval](const Gtk::TextIter & /*iter*/, const Glib::ustring & /*text*/, int /*bytes*/) { if(CompletionDialog::get() && CompletionDialog::get()->is_visible()) { cancel_reparse(); return; @@ -19,6 +19,15 @@ Autocomplete::Autocomplete(Source::BaseView *view, bool &interactive_completion, run(); } }); + view->get_buffer()->signal_erase().connect([this](const Gtk::TextIter & /*start*/, const Gtk::TextIter & /*end*/) { + if(CompletionDialog::get() && CompletionDialog::get()->is_visible()) { + cancel_reparse(); + return; + } + if(!this->view->has_focus()) + return; + stop(); + }); view->get_buffer()->signal_mark_set().connect([this](const Gtk::TextIter &iterator, const Glib::RefPtr &mark) { if(mark->get_name() == "insert")