pango r2653 - in trunk: . pango
- From: behdad svn gnome org
- To: svn-commits-list gnome org
- Subject: pango r2653 - in trunk: . pango
- Date: Mon, 16 Jun 2008 20:08:21 +0000 (UTC)
Author: behdad
Date: Mon Jun 16 20:08:21 2008
New Revision: 2653
URL: http://svn.gnome.org/viewvc/pango?rev=2653&view=rev
Log:
2008-06-16 Behdad Esfahbod <behdad gnome org>
Bug 538661 â Improve pango_cairo_context_update_context()
* pango/pangocairo-context.c (_pango_cairo_update_context):
Relayout only if merged options changed.
Modified:
trunk/ChangeLog
trunk/pango/pangocairo-context.c
Modified: trunk/pango/pangocairo-context.c
==============================================================================
--- trunk/pango/pangocairo-context.c (original)
+++ trunk/pango/pangocairo-context.c Mon Jun 16 20:08:21 2008
@@ -92,36 +92,31 @@
PangoMatrix pango_matrix;
const PangoMatrix *current_matrix, identity_matrix = PANGO_MATRIX_INIT;
const cairo_font_options_t *merged_options;
+ cairo_font_options_t *old_merged_options;
gboolean changed = FALSE;
info = get_context_info (context, TRUE);
-
target = cairo_get_target (cr);
- if (!info->surface_options) {
+ if (!info->surface_options)
info->surface_options = cairo_font_options_create ();
- changed = TRUE;
- cairo_surface_get_font_options (target, info->surface_options);
- } else {
- cairo_font_options_t *surface_options = cairo_font_options_create ();
- cairo_surface_get_font_options (target, surface_options);
- if (!cairo_font_options_equal (surface_options, info->surface_options))
- {
- cairo_surface_get_font_options (target, info->surface_options);
- changed = TRUE;
- }
- cairo_font_options_destroy (surface_options);
- }
+ cairo_surface_get_font_options (target, info->surface_options);
- if (info->merged_options)
- {
- cairo_font_options_destroy (info->merged_options);
- info->merged_options = NULL;
- }
+ old_merged_options = info->merged_options;
+ info->merged_options = NULL;
merged_options = _pango_cairo_context_get_merged_font_options (context);
+ if (old_merged_options)
+ {
+ if (!cairo_font_options_equal (merged_options, old_merged_options))
+ changed = TRUE;
+ cairo_font_options_destroy (old_merged_options);
+ old_merged_options = NULL;
+ }
+ else
+ changed = TRUE;
cairo_get_matrix (cr, &cairo_matrix);
pango_matrix.xx = cairo_matrix.xx;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]