From e1b834a2bf684ac4a7d4b33fbf216d65896889c6 Mon Sep 17 00:00:00 2001 From: liuyi92 Date: Wed, 28 Mar 2018 14:21:43 +0800 Subject: fix setting transparency issue when used in GNOME3 --- src/terminal-screen.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src') 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 -- cgit v1.2.1