summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-06-04 11:08:20 +0100
committerMichael Stahl <michael.stahl@allotropia.de>2022-08-19 16:39:51 +0200
commite65f6943ac066b9dfb9d0f537435570c5dbd5376 (patch)
treeed0910d09e7f97397c6fb0a102a5ce08303e6ce2 /vcl
parentd8009126bff54a65c86a1e7d600e56aea097c4fb (diff)
document the mapping to CellRenderers
and clarify that g-lo-CellIndex is the index from the external pov Change-Id: Id747acaeabab50755188732637a72c1fce8a97dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95519 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 36f57d5aebe448701ffe3bbc529f29d2112dec94)
Diffstat (limited to 'vcl')
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx8
1 files changed, 7 insertions, 1 deletions
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index b2c2a3b7f17b..e1b65a2e460c 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -8472,6 +8472,11 @@ public:
, m_nKeyPressSignalId(g_signal_connect(pTreeView, "key-press-event", G_CALLBACK(signalKeyPress), this))
, m_pChangeEvent(nullptr)
{
+ /* The outside concept of a column maps to a gtk CellRenderer, rather than
+ a TreeViewColumn. If the first TreeViewColumn has two CellRenderers, and
+ the first CellRenderer is an image, that CellRenderer is considered to
+ be index -1.
+ */
m_pColumns = gtk_tree_view_get_columns(m_pTreeView);
int nIndex(0);
int nViewColumn(0);
@@ -8483,7 +8488,6 @@ public:
for (GList* pRenderer = g_list_first(pRenderers); pRenderer; pRenderer = g_list_next(pRenderer))
{
GtkCellRenderer* pCellRenderer = GTK_CELL_RENDERER(pRenderer->data);
- g_object_set_data(G_OBJECT(pCellRenderer), "g-lo-CellIndex", reinterpret_cast<gpointer>(nIndex));
if (GTK_IS_CELL_RENDERER_TEXT(pCellRenderer))
{
if (m_nTextCol == -1)
@@ -8511,6 +8515,8 @@ public:
else if (m_nImageCol == -1)
m_nImageCol = nIndex;
}
+ int nExternalIndex = to_external_model(nIndex);
+ g_object_set_data(G_OBJECT(pCellRenderer), "g-lo-CellIndex", reinterpret_cast<gpointer>(nExternalIndex));
++nIndex;
}
g_list_free(pRenderers);