From 7612e90369e2ae581612b587ccb32be88f0dab37 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Mon, 27 Oct 2014 12:25:58 -0400 Subject: [PATCH] add back support for transparency Closes #191 --- termite.cc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/termite.cc b/termite.cc index b85791b..668191c 100644 --- a/termite.cc +++ b/termite.cc @@ -1371,6 +1371,16 @@ static char *get_user_shell_with_fallback() { return g_strdup("/bin/sh"); } +static void on_alpha_screen_changed(GtkWindow *window, GdkScreen *old_screen, void *) { + GdkScreen *screen = gtk_widget_get_screen(GTK_WIDGET(window)); + GdkVisual *visual = gdk_screen_get_rgba_visual(screen); + + if (!visual) + visual = gdk_screen_get_system_visual(screen); + + gtk_widget_set_visual(GTK_WIDGET(window), visual); +} + int main(int argc, char **argv) { GError *error = nullptr; const char *const term = "xterm-termite"; @@ -1498,6 +1508,9 @@ int main(int argc, char **argv) { g_signal_connect(window, "focus-in-event", G_CALLBACK(focus_cb), nullptr); g_signal_connect(window, "focus-out-event", G_CALLBACK(focus_cb), nullptr); + on_alpha_screen_changed(GTK_WINDOW(window), nullptr, nullptr); + g_signal_connect(window, "screen-changed", G_CALLBACK(on_alpha_screen_changed), nullptr); + if (info.config.fullscreen) { g_signal_connect(window, "window-state-event", G_CALLBACK(window_state_cb), &info); }