"font_desc",
"attributes",
- "background_gdk",
+ "background-gdk",
"editable",
"family",
- "foreground_gdk",
+ "foreground-gdk",
"rise",
"scale",
"size",
- "size_points",
+ "size-points",
"stretch",
"strikethrough",
"style",
"weight",
/* Also need the sets */
- "background_set",
- "editable_set",
- "family_set",
- "foreground_set",
- "rise_set",
- "scale_set",
- "size_set",
- "stretch_set",
- "strikethrough_set",
- "style_set",
- "underline_set",
- "variant_set",
- "weight_set",
+ "background-set",
+ "editable-set",
+ "family-set",
+ "foreground-set",
+ "rise-set",
+ "scale-set",
+ "size-set",
+ "stretch-set",
+ "strikethrough-set",
+ "style-set",
+ "underline-set",
+ "variant-set",
+ "weight-set",
NULL
};
pango_attr_list_unref (attr_list);
pango_font_description_free (font_desc);
- g_free (foreground_gdk);
pango_attr_list_unref (attributes);
g_free (renderer_text);
+ gdk_color_free (foreground_gdk);
return layout;
}
PangoRectangle char_rect;
PangoLayout *layout;
gchar *renderer_text;
+ gfloat xalign, yalign;
gint x_offset, y_offset, index;
gint xpad, ypad;
widget,
&min_size, NULL);
- gtk_cell_renderer_calc_offset (GTK_CELL_RENDERER (gtk_renderer), &rendered_rect,
- gtk_widget_get_direction (widget),
- min_size.width, min_size.height,
- &x_offset, &y_offset);
+ gtk_cell_renderer_get_alignment (GTK_CELL_RENDERER (gtk_renderer), &xalign, &yalign);
+ if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
+ xalign = 1.0 - xalign;
+ x_offset = MAX (0, xalign * (rendered_rect.width - min_size.width));
+ y_offset = MAX (0, yalign * (rendered_rect.height - min_size.height));
layout = create_pango_layout (gtk_renderer, widget);
index = g_utf8_offset_to_pointer (renderer_text, offset) - renderer_text;
- pango_layout_index_to_pos (layout, index, &char_rect);
+ pango_layout_index_to_pos (layout, index, &char_rect);
gtk_cell_renderer_get_padding (gail_renderer->renderer, &xpad, &ypad);
gail_misc_get_extents_from_pango_rectangle (widget,
GdkRectangle rendered_rect;
PangoLayout *layout;
gchar *renderer_text;
- gint width, height;
gfloat xalign, yalign;
gint x_offset, y_offset, index;
gint xpad, ypad;
gtk_cell_renderer_get_preferred_size (GTK_CELL_RENDERER (gtk_renderer),
widget,
&min_size, NULL);
- gtk_cell_renderer_get_fixed_size (GTK_CELL_RENDERER (gtk_renderer), &width, &height);
gtk_cell_renderer_get_alignment (GTK_CELL_RENDERER (gtk_renderer), &xalign, &yalign);
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
xalign = 1.0 - xalign;
- x_offset = MAX (0, xalign * (width - min_size.width));
- y_offset = MAX (0, yalign * (height - min_size.height));
+ x_offset = MAX (0, xalign * (rendered_rect.width - min_size.width));
+ y_offset = MAX (0, yalign * (rendered_rect.height - min_size.height));
layout = create_pango_layout (gtk_renderer, widget);