diff --git a/src/terminal-screen.c b/src/terminal-screen.c index 73fa9ae..746a53d 100644 --- a/src/terminal-screen.c +++ b/src/terminal-screen.c @@ -1138,6 +1138,25 @@ update_color_scheme (TerminalScreen *screen) if (bold_rgba) vte_terminal_set_color_bold (VTE_TERMINAL (screen), bold_rgba); + + /* In case of being used in GNOME3 desktop environment. + * code references to gnome-terminal + */ + if (bg_type == TERMINAL_BACKGROUND_TRANSPARENT) + { + /* toplevel widget */ + GtkWidget *toplevel; + toplevel = gtk_widget_get_toplevel (GTK_WIDGET (screen)); + if (toplevel != NULL && gtk_widget_is_toplevel (toplevel) + && !gtk_widget_get_app_paintable (toplevel)) + { + gtk_widget_set_app_paintable (toplevel, TRUE); + /* The opaque region of the toplevel isn't updated until the toplevel is allocated; + * set_app_paintable() doesn't force an allocation, so do that manually. + */ + gtk_widget_queue_resize (toplevel); + } + } } void