From 5d04f41d47de8161c1653255666e3f4e7b508228 Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Wed, 31 Aug 2016 10:01:27 -0700 Subject: [PATCH] Save and restore GtkStyleContext in a few places that were not doing it Does not fix any known problem, but seems prudent --- src/gtk/control.cpp | 2 ++ src/gtk/window.cpp | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/gtk/control.cpp b/src/gtk/control.cpp index bc1ee187eb..054526f8d1 100644 --- a/src/gtk/control.cpp +++ b/src/gtk/control.cpp @@ -250,12 +250,14 @@ wxControl::GetDefaultAttributesFromGTKWidget(GtkWidget* widget, stateFlag = GTK_STATE_FLAG_ACTIVE; } GtkStyleContext* sc = gtk_widget_get_style_context(widget); + gtk_style_context_save(sc); GdkRGBA *fc, *bc; wxNativeFontInfo info; gtk_style_context_set_state(sc, stateFlag); gtk_style_context_get(sc, stateFlag, "color", &fc, "background-color", &bc, GTK_STYLE_PROPERTY_FONT, &info.description, NULL); + gtk_style_context_restore(sc); attr.colFg = wxColour(*fc); attr.colBg = wxColour(*bc); attr.font = wxFont(info); diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index d9890dab67..2ebed27443 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -373,8 +373,10 @@ draw_border(GtkWidget* widget, GdkEventExpose* gdk_event, wxWindow* win) #ifdef __WXGTK3__ GtkStyleContext* sc = gtk_widget_get_style_context(win->m_wxwindow); GdkRGBA* c; + gtk_style_context_save(sc); gtk_style_context_set_state(sc, GTK_STATE_FLAG_NORMAL); gtk_style_context_get(sc, GTK_STATE_FLAG_NORMAL, "border-color", &c, NULL); + gtk_style_context_restore(sc); gdk_cairo_set_source_rgba(cr, c); gdk_rgba_free(c); cairo_set_line_width(cr, 1); @@ -4573,9 +4575,11 @@ void wxWindowGTK::GTKApplyStyle(GtkWidget* widget, GtkRcStyle* WXUNUSED_IN_GTK3( cairo_pattern_t* pattern = NULL; if (m_backgroundColour.IsOk()) { + gtk_style_context_save(context); gtk_style_context_set_state(context, GTK_STATE_FLAG_NORMAL); gtk_style_context_get(context, GTK_STATE_FLAG_NORMAL, "background-image", &pattern, NULL); + gtk_style_context_restore(context); } if (pattern) {