[Xfce4-commits] <terminal:master> Use mid color if activity expired (bug #9686).
Nick Schermer
noreply at xfce.org
Thu Dec 27 15:30:04 CET 2012
Updating branch refs/heads/master
to 74592a9701ff77dc378aa1244d1369044faf2c87 (commit)
from cab85ed2ba0c0045ae10ac6d9b1c4f7a6fd95544 (commit)
commit 74592a9701ff77dc378aa1244d1369044faf2c87
Author: Nick Schermer <nick at xfce.org>
Date: Thu Dec 27 15:28:28 2012 +0100
Use mid color if activity expired (bug #9686).
terminal/terminal-screen.c | 40 ++++++++++++++++++++++++++++++----------
1 files changed, 30 insertions(+), 10 deletions(-)
diff --git a/terminal/terminal-screen.c b/terminal/terminal-screen.c
index 19bf4eb..98a2840 100644
--- a/terminal/terminal-screen.c
+++ b/terminal/terminal-screen.c
@@ -1283,10 +1283,30 @@ terminal_screen_vte_resize_window (VteTerminal *terminal,
static gboolean
terminal_screen_reset_activity_timeout (gpointer user_data)
{
- /* reset label color */
+ TerminalScreen *screen = TERMINAL_SCREEN (user_data);
+ GtkStyle *style;
+ GdkColor color;
+ GdkColor active_color;
+
+ if (G_UNLIKELY (screen->tab_label == NULL))
+ return FALSE;
+
GDK_THREADS_ENTER ();
- gtk_widget_modify_fg (TERMINAL_SCREEN (user_data)->tab_label,
- GTK_STATE_ACTIVE, NULL);
+
+ /* unset */
+ gtk_widget_modify_fg (screen->tab_label, GTK_STATE_ACTIVE, NULL);
+
+ if (terminal_preferences_get_color (screen->preferences, "tab-activity-color", &active_color))
+ {
+ /* calculate color between fg and active color */
+ style = gtk_widget_get_style (screen->tab_label);
+ color.red = (active_color.red + style->fg[GTK_STATE_ACTIVE].red) / 2;
+ color.green = (active_color.green + style->fg[GTK_STATE_ACTIVE].green) / 2;
+ color.blue = (active_color.blue + style->fg[GTK_STATE_ACTIVE].blue) / 2;
+
+ gtk_widget_modify_fg (screen->tab_label, GTK_STATE_ACTIVE, &color);
+ }
+
GDK_THREADS_LEAVE ();
return FALSE;
@@ -1307,7 +1327,7 @@ terminal_screen_vte_window_contents_changed (TerminalScreen *screen)
{
guint timeout;
GdkColor color;
- gboolean has_fg;
+ gboolean has_color;
terminal_return_if_fail (TERMINAL_IS_SCREEN (screen));
terminal_return_if_fail (GTK_IS_LABEL (screen->tab_label));
@@ -1325,8 +1345,8 @@ terminal_screen_vte_window_contents_changed (TerminalScreen *screen)
return;
/* set label color */
- has_fg = terminal_preferences_get_color (screen->preferences, "tab-activity-color", &color);
- gtk_widget_modify_fg (screen->tab_label, GTK_STATE_ACTIVE, has_fg ? &color : NULL);
+ has_color = terminal_preferences_get_color (screen->preferences, "tab-activity-color", &color);
+ gtk_widget_modify_fg (screen->tab_label, GTK_STATE_ACTIVE, has_color ? &color : NULL);
/* stop running reset timeout */
if (screen->activity_timeout_id != 0)
@@ -2073,10 +2093,10 @@ terminal_screen_reset_activity (TerminalScreen *screen)
terminal_return_if_fail (TERMINAL_IS_SCREEN (screen));
if (screen->activity_timeout_id != 0)
- {
- g_source_remove (screen->activity_timeout_id);
- terminal_screen_reset_activity_timeout (screen);
- }
+ g_source_remove (screen->activity_timeout_id);
+
+ if (screen->tab_label != NULL)
+ gtk_widget_modify_fg (screen->tab_label, GTK_STATE_ACTIVE, NULL);
}
More information about the Xfce4-commits
mailing list