[gtk+] textview: Only clear the layout in style_update if the font actually changes
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] textview: Only clear the layout in style_update if the font actually changes
- Date: Thu, 6 Dec 2012 20:17:06 +0000 (UTC)
commit fd964ca178105626b9945995b22c2dabe6ebe853
Author: Alexander Larsson <alexl redhat com>
Date: Thu Dec 6 21:16:19 2012 +0100
textview: Only clear the layout in style_update if the font actually changes
gtk/gtktextview.c | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c
index e3c1a57..9234326 100644
--- a/gtk/gtktextview.c
+++ b/gtk/gtktextview.c
@@ -51,6 +51,7 @@
#include "gtkscrollable.h"
#include "gtktypebuiltins.h"
#include "gtktexthandleprivate.h"
+#include "gtkstylecontextprivate.h"
#include "a11y/gtktextviewaccessible.h"
@@ -4230,6 +4231,8 @@ gtk_text_view_style_updated (GtkWidget *widget)
GtkTextView *text_view;
GtkTextViewPrivate *priv;
PangoContext *ltr_context, *rtl_context;
+ GtkStyleContext *style_context;
+ const GtkBitmask *changes;
text_view = GTK_TEXT_VIEW (widget);
priv = text_view->priv;
@@ -4241,7 +4244,11 @@ gtk_text_view_style_updated (GtkWidget *widget)
gtk_text_view_set_background (text_view);
}
- if (priv->layout && priv->layout->default_style)
+
+ style_context = gtk_widget_get_style_context (widget);
+ changes = _gtk_style_context_get_changes (style_context);
+ if ((changes == NULL || _gtk_css_style_property_changes_affect_font (changes)) &&
+ priv->layout && priv->layout->default_style)
{
gtk_text_view_set_attributes_from_style (text_view,
priv->layout->default_style);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]