[gnome-terminal/scrollbar-bg-fix: 2/3] TerminalScreenContainer: use the screen background color for main hbox bg
- From: Marco Trevisan <marcotrevi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-terminal/scrollbar-bg-fix: 2/3] TerminalScreenContainer: use the screen background color for main hbox bg
- Date: Wed, 9 Sep 2015 17:49:41 +0000 (UTC)
commit c01892ddeb90e8caea7ede11959dd39c293d0efe
Author: Marco Trevisan (TreviƱo) <mail 3v1n0 net>
Date: Wed Sep 9 19:45:47 2015 +0200
TerminalScreenContainer: use the screen background color for main hbox bg
The hbox that contains the terminal screen and the scrollbar should have
the same background color of the terminal screen.
src/terminal-screen-container.c | 36 ++++++++++++++++++++++++++++++++++++
1 files changed, 36 insertions(+), 0 deletions(-)
---
diff --git a/src/terminal-screen-container.c b/src/terminal-screen-container.c
index 1864712..e7303a5 100644
--- a/src/terminal-screen-container.c
+++ b/src/terminal-screen-container.c
@@ -98,6 +98,37 @@ terminal_screen_container_init (TerminalScreenContainer *container)
}
static void
+update_container_background_color (TerminalScreenContainer *container)
+{
+ GtkCssProvider *css_provider;
+ GtkStyleContext* style_ctx;
+ gchar *css_string, *bg_color;
+ TerminalScreenContainerPrivate *priv = container->priv;
+
+ css_provider = gtk_css_provider_new ();
+
+ bg_color = gdk_rgba_to_string (terminal_screen_get_bg_color (priv->screen));
+ css_string = g_strdup_printf ("* { background-color: %s; }", bg_color);
+ gtk_css_provider_load_from_data (css_provider, css_string, -1, NULL);
+
+ style_ctx = gtk_widget_get_style_context (GTK_WIDGET (priv->hbox));
+ gtk_style_context_add_provider (style_ctx, GTK_STYLE_PROVIDER (css_provider),
+ GTK_STYLE_PROVIDER_PRIORITY_FALLBACK);
+
+ g_free (css_string);
+ g_free (bg_color);
+ g_object_unref (css_provider);
+}
+
+static void
+screen_bg_color_changed_cb (TerminalScreen *screen,
+ GParamSpec *pspec,
+ TerminalScreenContainer *container)
+{
+ update_container_background_color (container);
+}
+
+static void
terminal_screen_container_constructed (GObject *object)
{
TerminalScreenContainer *container = TERMINAL_SCREEN_CONTAINER (object);
@@ -119,6 +150,11 @@ terminal_screen_container_constructed (GObject *object)
gtk_widget_show_all (priv->hbox);
_terminal_screen_update_scrollbar (priv->screen);
+
+ g_signal_connect (priv->screen, "notify::bg-color",
+ G_CALLBACK (screen_bg_color_changed_cb), container);
+
+ update_container_background_color (container);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]