29 _popover_menu{
Gtk::PositionType::BOTTOM},
30 _completion(
get_object<
Gtk::EntryCompletion>(_builder,
"completion"))
32 auto const key = Gtk::EventControllerKey::create();
33 key->set_propagation_phase(Gtk::PropagationPhase::CAPTURE);
38 _list = std::dynamic_pointer_cast<Gtk::ListStore>(
_builder->get_object(
"list"));
43 _completion->set_match_func([=](
const Glib::ustring& text,
const Gtk::TreeModel::const_iterator& it){
49 return str.normalize().lowercase().find(text.normalize().lowercase()) != Glib::ustring::npos;
52 _completion->signal_match_selected().connect([
this](
const Gtk::TreeModel::iterator& it){
54 it->get_value(
ColID,
id);
60 auto focus = Gtk::EventControllerFocus::create();
61 focus->property_contains_focus().signal_changed().connect([
this, &focus = *focus] {
62 if (focus.contains_focus()) {
68 _button.property_active().signal_changed().connect([
this] {