fix setting transparency issue when used in GNOME3

master-1.22
liuyi92 2018-03-28 14:21:43 +08:00 committed by raveit65
parent 6f49c629a1
commit e1b834a2bf
1 changed files with 19 additions and 0 deletions

View File

@ -1138,6 +1138,25 @@ update_color_scheme (TerminalScreen *screen)
if (bold_rgba) if (bold_rgba)
vte_terminal_set_color_bold (VTE_TERMINAL (screen), vte_terminal_set_color_bold (VTE_TERMINAL (screen),
bold_rgba); 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 void