diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-10-14 17:22:38 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-10-14 21:55:15 +0200 |
commit | a0e1c2e4ff7c89f284442d2e8cb2b1810a1d61f5 (patch) | |
tree | 33f56355ddfaf94c9b8506f946bfd610ae62d8b9 | |
parent | 64d510526ec40d92efdc80438503f2e30467d2c3 (diff) |
send ComboBox "changed" on autocomplete suggestion
and put include_mru into its own function
Change-Id: I9e7c669df7c538ae7271b16a0fdc31f102e9333f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104323
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkinst.cxx | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index 1db06d1cb1c2..9dcf0645c9d4 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -13726,7 +13726,10 @@ private: { OUString aText = get_text_including_mru(nPos); if (aText != aStartText) - set_active_text(aText); + { + SolarMutexGuard aGuard; + set_active_including_mru(nPos, true); + } select_entry_region(aText.getLength(), aStartText.getLength()); } enable_notify_events(); @@ -14648,6 +14651,13 @@ private: return true; } + int include_mru(int pos) + { + if (m_nMRUCount && pos != -1) + pos += (m_nMRUCount + 1); + return pos; + } + public: GtkInstanceComboBox(GtkBuilder* pComboBuilder, GtkComboBox* pComboBox, GtkInstanceBuilder* pBuilder, bool bTakeOwnership) : GtkInstanceContainer(GTK_CONTAINER(gtk_builder_get_object(pComboBuilder, "box")), pBuilder, bTakeOwnership) @@ -14865,9 +14875,7 @@ public: virtual void set_active(int pos) override { - if (m_nMRUCount && pos != -1) - pos += (m_nMRUCount + 1); - set_active_including_mru(pos, false); + set_active_including_mru(include_mru(pos), false); } virtual OUString get_active_text() const override @@ -14940,9 +14948,7 @@ public: virtual void insert(int pos, const OUString& rText, const OUString* pId, const OUString* pIconName, VirtualDevice* pImageSurface) override { - if (m_nMRUCount && pos != -1) - pos += (m_nMRUCount + 1); - insert_including_mru(pos, rText, pId, pIconName, pImageSurface); + insert_including_mru(include_mru(pos), rText, pId, pIconName, pImageSurface); } virtual void insert_separator(int pos, const OUString& rId) override |