summaryrefslogtreecommitdiff
path: root/vcl/unx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-07-04 18:00:52 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-07-04 19:55:29 +0200
commitf9d86399e92d9c734fdffc6a7c83a2007877ba93 (patch)
treea3f511ff9734e2c9e688bfa74d64f609e3aedd52 /vcl/unx
parentd70da0b9e24991f8d58e83f53dbbf5b58c721f43 (diff)
tdf#134479 allow disable font preview to work on existing font comboboxes
not just newly created one. you can only restore back to a text-only view, not a text+(icon/whatever) view Change-Id: Ic3becd7a942ee6b1dbabb57eebf1e25d1b626fdb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97972 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl/unx')
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx36
1 files changed, 25 insertions, 11 deletions
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 144cb6b66563..a7d8a9cd30a7 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -12949,6 +12949,7 @@ private:
bool m_bAutoComplete;
bool m_bAutoCompleteCaseSensitive;
bool m_bChangedByMenu;
+ bool m_bCustomRenderer;
bool m_bActivateCalled;
gint m_nTextCol;
gint m_nIdCol;
@@ -13950,6 +13951,7 @@ public:
, m_bAutoComplete(false)
, m_bAutoCompleteCaseSensitive(false)
, m_bChangedByMenu(false)
+ , m_bCustomRenderer(false)
, m_bActivateCalled(false)
, m_nTextCol(gtk_combo_box_get_entry_text_column(pComboBox))
, m_nIdCol(gtk_combo_box_get_id_column(pComboBox))
@@ -14472,22 +14474,34 @@ public:
return m_bChangedByMenu;
}
- virtual void set_custom_renderer() override
+ virtual void set_custom_renderer(bool bOn) override
{
+ if (bOn == m_bCustomRenderer)
+ return;
GList* pColumns = gtk_tree_view_get_columns(m_pTreeView);
// keep the original height around for optimal popup height calculation
- m_nNonCustomLineHeight = ::get_height_row(m_pTreeView, pColumns);
+ m_nNonCustomLineHeight = bOn ? ::get_height_row(m_pTreeView, pColumns) : -1;
GtkTreeViewColumn* pColumn = GTK_TREE_VIEW_COLUMN(pColumns->data);
gtk_cell_layout_clear(GTK_CELL_LAYOUT(pColumn));
- GtkCellRenderer *pRenderer = custom_cell_renderer_surface_new();
- GValue value = G_VALUE_INIT;
- g_value_init(&value, G_TYPE_POINTER);
- g_value_set_pointer(&value, static_cast<gpointer>(this));
- g_object_set_property(G_OBJECT(pRenderer), "instance", &value);
- gtk_tree_view_column_pack_start(pColumn, pRenderer, true);
- gtk_tree_view_column_add_attribute(pColumn, pRenderer, "text", m_nTextCol);
- gtk_tree_view_column_add_attribute(pColumn, pRenderer, "id", m_nIdCol);
+ if (bOn)
+ {
+ GtkCellRenderer *pRenderer = custom_cell_renderer_surface_new();
+ GValue value = G_VALUE_INIT;
+ g_value_init(&value, G_TYPE_POINTER);
+ g_value_set_pointer(&value, static_cast<gpointer>(this));
+ g_object_set_property(G_OBJECT(pRenderer), "instance", &value);
+ gtk_tree_view_column_pack_start(pColumn, pRenderer, true);
+ gtk_tree_view_column_add_attribute(pColumn, pRenderer, "text", m_nTextCol);
+ gtk_tree_view_column_add_attribute(pColumn, pRenderer, "id", m_nIdCol);
+ }
+ else
+ {
+ GtkCellRenderer *pRenderer = gtk_cell_renderer_text_new();
+ gtk_tree_view_column_pack_start(pColumn, pRenderer, true);
+ gtk_tree_view_column_add_attribute(pColumn, pRenderer, "text", m_nTextCol);
+ }
g_list_free(pColumns);
+ m_bCustomRenderer = bOn;
}
void call_signal_custom_render(VirtualDevice& rOutput, const tools::Rectangle& rRect, bool bSelected, const OUString& rId)
@@ -14960,7 +14974,7 @@ public:
return m_bTreeChange;
}
- virtual void set_custom_renderer() override
+ virtual void set_custom_renderer(bool /*bOn*/) override
{
assert(false && "not implemented");
}