瀏覽代碼

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 年之前
父節點
當前提交
8b4e2e20
共有 1 個文件被更改,包括 6 次插入1 次删除
  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)