diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2022-06-07 11:52:07 +0300 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2022-06-07 11:53:13 +0200 |
commit | 6ccff201088590274247fb9f63b7fa997cfee327 (patch) | |
tree | 736dcf24914214192699133ecc34988a609f81ec /vcl/unx | |
parent | badad69848f10b462a11f5b5e784cb468a94b180 (diff) |
Fix ImageView without text on GTK
Change-Id: I2c1884722de2d40e96282d1efbba4be0ad078bd2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135465
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'vcl/unx')
-rw-r--r-- | vcl/unx/gtk3/gtkinst.cxx | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index 4ad8f424e653..97039a3c4e8f 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -16186,9 +16186,10 @@ private: void insert_item(GtkTreeIter& iter, int pos, const OUString* pId, const OUString* pText, const OUString* pIconName) { + // m_nTextCol may be -1, so pass it last, to not terminate the sequence before the Id value gtk_tree_store_insert_with_values(m_pTreeStore, &iter, nullptr, pos, - m_nTextCol, !pText ? nullptr : OUStringToOString(*pText, RTL_TEXTENCODING_UTF8).getStr(), m_nIdCol, !pId ? nullptr : OUStringToOString(*pId, RTL_TEXTENCODING_UTF8).getStr(), + m_nTextCol, !pText ? nullptr : OUStringToOString(*pText, RTL_TEXTENCODING_UTF8).getStr(), -1); if (pIconName) { @@ -16201,9 +16202,10 @@ private: void insert_item(GtkTreeIter& iter, int pos, const OUString* pId, const OUString* pText, const VirtualDevice* pIcon) { + // m_nTextCol may be -1, so pass it last, to not terminate the sequence before the Id value gtk_tree_store_insert_with_values(m_pTreeStore, &iter, nullptr, pos, - m_nTextCol, !pText ? nullptr : OUStringToOString(*pText, RTL_TEXTENCODING_UTF8).getStr(), m_nIdCol, !pId ? nullptr : OUStringToOString(*pId, RTL_TEXTENCODING_UTF8).getStr(), + m_nTextCol, !pText ? nullptr : OUStringToOString(*pText, RTL_TEXTENCODING_UTF8).getStr(), -1); if (pIcon) { @@ -16251,7 +16253,7 @@ public: : GtkInstanceWidget(GTK_WIDGET(pIconView), pBuilder, bTakeOwnership) , m_pIconView(pIconView) , m_pTreeStore(GTK_TREE_STORE(gtk_icon_view_get_model(m_pIconView))) - , m_nTextCol(gtk_icon_view_get_text_column(m_pIconView)) + , m_nTextCol(gtk_icon_view_get_text_column(m_pIconView)) // May be -1 , m_nImageCol(gtk_icon_view_get_pixbuf_column(m_pIconView)) , m_nSelectionChangedSignalId(g_signal_connect(pIconView, "selection-changed", G_CALLBACK(signalSelectionChanged), this)) @@ -16261,7 +16263,7 @@ public: #endif , m_pSelectionChangeEvent(nullptr) { - m_nIdCol = m_nTextCol + 1; + m_nIdCol = std::max(m_nTextCol, m_nImageCol) + 1; } virtual int get_item_width() const override @@ -16310,6 +16312,7 @@ public: { weld::IconView::connect_query_tooltip(rLink); m_nQueryTooltipSignalId = g_signal_connect(m_pIconView, "query-tooltip", G_CALLBACK(signalQueryTooltip), this); + gtk_widget_set_has_tooltip(GTK_WIDGET(m_pIconView), true); } virtual OUString get_selected_id() const override |