[Xfce4-commits] [apps/xfce4-terminal] 01/01: Use pango text attributes to change tab label text color

noreply at xfce.org noreply at xfce.org
Thu Oct 13 16:38:04 CEST 2016


This is an automated email from the git hooks/post-receive script.

f2404 pushed a commit to branch master
in repository apps/xfce4-terminal.

commit 7b596dd280eee9e54a2f1be22b6664f08f8bd0a1
Author: Igor <f2404 at yandex.ru>
Date:   Thu Oct 13 17:37:20 2016 +0300

    Use pango text attributes to change tab label text color
    
    This resolves gtk_widget_override_color deprecation warnings.
---
 terminal/terminal-screen.c | 37 ++++++++++++++++++++++++++++---------
 1 file changed, 28 insertions(+), 9 deletions(-)

diff --git a/terminal/terminal-screen.c b/terminal/terminal-screen.c
index 2c0fa8d..0351437 100644
--- a/terminal/terminal-screen.c
+++ b/terminal/terminal-screen.c
@@ -1247,12 +1247,14 @@ terminal_screen_reset_activity_timeout (gpointer user_data)
   TerminalScreen *screen = TERMINAL_SCREEN (user_data);
   GdkRGBA         active_color;
   GdkRGBA         fg_color;
+  PangoAttrList  *attrs;
+  PangoAttribute *foreground;
 
   if (G_UNLIKELY (screen->tab_label == NULL))
     return FALSE;
 
   /* unset */
-  gtk_widget_override_color (screen->tab_label, gtk_widget_get_state_flags (screen->tab_label), NULL);
+  gtk_label_set_attributes (GTK_LABEL (screen->tab_label), NULL);
 
   if (terminal_preferences_get_color (screen->preferences, "tab-activity-color", &active_color))
     {
@@ -1264,7 +1266,13 @@ terminal_screen_reset_activity_timeout (gpointer user_data)
       active_color.green = (active_color.green + fg_color.green) / 2;
       active_color.blue = (active_color.blue + fg_color.blue) / 2;
 
-      gtk_widget_override_color (screen->tab_label, gtk_widget_get_state_flags (screen->tab_label), &active_color);
+      attrs = pango_attr_list_new ();
+      foreground = pango_attr_foreground_new ((guint16)(active_color.red*65535),
+                                              (guint16)(active_color.green*65535),
+                                              (guint16)(active_color.blue*65535));
+      pango_attr_list_insert (attrs, foreground);
+      gtk_label_set_attributes (GTK_LABEL (screen->tab_label), attrs);
+      pango_attr_list_unref (attrs);
     }
 
   return FALSE;
@@ -1283,9 +1291,11 @@ terminal_screen_reset_activity_destroyed (gpointer user_data)
 static void
 terminal_screen_vte_window_contents_changed (TerminalScreen *screen)
 {
-  guint    timeout;
-  GdkRGBA  color;
-  gboolean has_color;
+  guint           timeout;
+  GdkRGBA         color;
+  gboolean        has_color;
+  PangoAttrList  *attrs;
+  PangoAttribute *foreground;
 
   terminal_return_if_fail (TERMINAL_IS_SCREEN (screen));
   terminal_return_if_fail (GTK_IS_LABEL (screen->tab_label));
@@ -1305,9 +1315,18 @@ terminal_screen_vte_window_contents_changed (TerminalScreen *screen)
 
   /* set label color */
   has_color = terminal_preferences_get_color (screen->preferences, "tab-activity-color", &color);
-  gtk_widget_override_color (screen->tab_label,
-                             gtk_widget_get_state_flags (screen->tab_label),
-                             has_color ? &color : NULL);
+  if (G_LIKELY (has_color))
+    {
+      attrs = pango_attr_list_new ();
+      foreground = pango_attr_foreground_new ((guint16)(color.red*65535),
+                                              (guint16)(color.green*65535),
+                                              (guint16)(color.blue*65535));
+      pango_attr_list_insert (attrs, foreground);
+      gtk_label_set_attributes (GTK_LABEL (screen->tab_label), attrs);
+      pango_attr_list_unref (attrs);
+    }
+  else
+      gtk_label_set_attributes (GTK_LABEL (screen->tab_label), NULL);
 
   /* stop running reset timeout */
   if (screen->activity_timeout_id != 0)
@@ -2067,7 +2086,7 @@ terminal_screen_reset_activity (TerminalScreen *screen)
     g_source_remove (screen->activity_timeout_id);
 
   if (screen->tab_label != NULL)
-    gtk_widget_override_color (screen->tab_label, gtk_widget_get_state_flags (screen->tab_label), NULL);
+    gtk_label_set_attributes (GTK_LABEL (screen->tab_label), NULL);
 }
 
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list