summaryrefslogtreecommitdiff
path: root/vcl/unx
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2022-06-07 11:52:07 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2022-06-07 11:53:13 +0200
commit6ccff201088590274247fb9f63b7fa997cfee327 (patch)
tree736dcf24914214192699133ecc34988a609f81ec /vcl/unx
parentbadad69848f10b462a11f5b5e784cb468a94b180 (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.cxx11
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