]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge branch 'feature/pgtk' of git.sv.gnu.org:/srv/git/emacs into feature/pgtk
authorYuuki Harano <masm+github@masm11.me>
Mon, 6 Dec 2021 15:46:39 +0000 (00:46 +0900)
committerYuuki Harano <masm+github@masm11.me>
Mon, 6 Dec 2021 15:46:39 +0000 (00:46 +0900)
1  2 
src/pgtkterm.c

diff --cc src/pgtkterm.c
index 4bfe2efbdc5fc80fce673991e0efa6d1eccdc188,7af4e3783abbc375b8a69d8075f21a5273d764ce..1e8d49c1d1bb22919e882645800cdea39fa9026d
@@@ -798,13 -798,7 +798,14 @@@ x_set_parent_frame (struct frame *f, Li
        gtk_widget_get_allocation (fixed, &alloc);
        g_object_ref (fixed);
  
 +      /* Remember the css provider, and restore it later. */
        GtkCssProvider *provider = FRAME_X_OUTPUT (f)->border_color_css_provider;
-       gtk_style_context_remove_provider (ctxt, GTK_STYLE_PROVIDER (provider));
 +      FRAME_X_OUTPUT (f)->border_color_css_provider = NULL;
 +      {
 +      GtkStyleContext *ctxt = gtk_widget_get_style_context (FRAME_WIDGET (f));
++      if (provider != NULL)
++        gtk_style_context_remove_provider (ctxt, GTK_STYLE_PROVIDER (provider));
 +      }
  
        {
        GtkWidget *whbox_of_f = gtk_widget_get_parent (fixed);
          gtk_widget_show_all (fixed);
        }
  
 +      /* Restore css provider. */
        GtkStyleContext *ctxt = gtk_widget_get_style_context (FRAME_WIDGET (f));
 -      if (provider)
 -      gtk_style_context_add_provider (ctxt, GTK_STYLE_PROVIDER (provider),
 -                                      GTK_STYLE_PROVIDER_PRIORITY_USER);
 +      GtkCssProvider *old = FRAME_X_OUTPUT (f)->border_color_css_provider;
 +      FRAME_X_OUTPUT (f)->border_color_css_provider = provider;
-       gtk_style_context_add_provider (ctxt, GTK_STYLE_PROVIDER (provider),
-                                     GTK_STYLE_PROVIDER_PRIORITY_USER);
++      if (provider != NULL)
++      {
++        gtk_style_context_add_provider (ctxt, GTK_STYLE_PROVIDER (provider),
++                                        GTK_STYLE_PROVIDER_PRIORITY_USER);
++      }
 +      if (old != NULL)
 +      {
 +        gtk_style_context_remove_provider (ctxt, GTK_STYLE_PROVIDER (old));
 +        g_object_unref(old);
 +      }
  
        g_object_unref (fixed);