g_type_class_add_private (object_class, sizeof (GtkCellRendererTextPrivate));
- _gtk_cell_renderer_class_set_accessible_type (cell_class, GTK_TYPE_TEXT_CELL_ACCESSIBLE);
+ gtk_cell_renderer_class_set_accessible_type (cell_class, GTK_TYPE_TEXT_CELL_ACCESSIBLE);
}
static void
if (priv->language)
g_object_unref (priv->language);
+ g_clear_object (&priv->entry);
+
G_OBJECT_CLASS (gtk_cell_renderer_text_parent_class)->finalize (object);
}
style_context = gtk_widget_get_style_context (widget);
state = gtk_widget_get_state_flags (widget);
- font_desc = pango_font_description_copy_static (gtk_style_context_get_font (style_context, state));
+ gtk_style_context_get (style_context, state, "font", &font_desc, NULL);
pango_font_description_merge_static (font_desc, priv->font, TRUE);
if (priv->scale_set)
priv = GTK_CELL_RENDERER_TEXT (data)->priv;
- priv->entry = NULL;
+ g_clear_object (&priv->entry);
if (priv->focus_out_id > 0)
{
gtk_cell_renderer_get_alignment (cell, &xalign, &yalign);
priv->entry = gtk_entry_new ();
+ g_object_ref_sink (G_OBJECT (priv->entry));
+
gtk_entry_set_has_frame (GTK_ENTRY (priv->entry), FALSE);
gtk_entry_set_alignment (GTK_ENTRY (priv->entry), xalign);
{
GtkCellRendererTextPrivate *priv;
GtkCellRendererText *celltext;
- GtkStyleContext *style_context;
- const PangoFontDescription *font_desc;
PangoLayout *layout;
PangoContext *context;
PangoFontMetrics *metrics;
celltext = GTK_CELL_RENDERER_TEXT (cell);
priv = celltext->priv;
- style_context = gtk_widget_get_style_context (widget);
-
gtk_cell_renderer_get_padding (cell, &xpad, NULL);
layout = get_layout (celltext, widget, NULL, 0);
/* Fetch the average size of a charachter */
context = pango_layout_get_context (layout);
- font_desc = gtk_style_context_get_font (style_context, 0);
- metrics = pango_context_get_metrics (context, font_desc,
+ metrics = pango_context_get_metrics (context,
+ pango_context_get_font_description (context),
pango_context_get_language (context));
char_width = pango_font_metrics_get_approximate_char_width (metrics);