Sfoglia il codice sorgente

LibGUI: Call on_change when set text is called

If there is an on_change callback, and we found at least one match,
call the callback.
Kyle Lanmon 1 anno fa
parent
commit
8b4e2e20
1 ha cambiato i file con 6 aggiunte e 1 eliminazioni
  1. 6 1
      Userland/Libraries/LibGUI/ComboBox.cpp

+ 6 - 1
Userland/Libraries/LibGUI/ComboBox.cpp

@@ -292,7 +292,12 @@ ByteString ComboBox::text() const
 
 void ComboBox::set_text(ByteString const& text, AllowCallback allow_callback)
 {
-    m_editor->set_text(text, allow_callback);
+    m_editor->set_text(text);
+    if (!on_change || allow_callback == AllowCallback::No)
+        return;
+    auto matches = model()->matches(text.view(), GUI::Model::MatchesFlag::FirstMatchOnly);
+    if (!matches.is_empty())
+        on_change(text, matches.first());
 }
 
 void ComboBox::set_only_allow_values_from_model(bool b)