[gnome-terminal] Finish Bug 595841 - Allow setting color for bold text
- From: Behdad Esfahbod <behdad src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnome-terminal] Finish Bug 595841 - Allow setting color for bold text
- Date: Mon, 14 Dec 2009 07:58:59 +0000 (UTC)
commit b2bf7008dc2edeaf09020a248853587c86626ad8
Author: Behdad Esfahbod <behdad behdad org>
Date: Mon Dec 14 02:57:27 2009 -0500
Finish Bug 595841 - Allow setting color for bold text
Add a "Bold color same as text color" checkbox.
src/profile-editor.c | 33 ++++++++++++++++++++++-----------
src/profile-preferences.glade | 17 ++++++++++++++++-
src/terminal-profile.c | 4 ++++
src/terminal-profile.h | 1 +
src/terminal-screen.c | 5 ++++-
5 files changed, 47 insertions(+), 13 deletions(-)
---
diff --git a/src/profile-editor.c b/src/profile-editor.c
index a5b5755..2e7541b 100644
--- a/src/profile-editor.c
+++ b/src/profile-editor.c
@@ -175,19 +175,22 @@ profile_notify_sensitivity_cb (TerminalProfile *profile,
prop_name == I_(TERMINAL_PROFILE_FOREGROUND_COLOR) ||
prop_name == I_(TERMINAL_PROFILE_BACKGROUND_COLOR) ||
prop_name == I_(TERMINAL_PROFILE_BOLD_COLOR) ||
+ prop_name == I_(TERMINAL_PROFILE_BOLD_COLOR_SAME_AS_FG) ||
prop_name == I_(TERMINAL_PROFILE_USE_THEME_COLORS))
{
- gboolean fg_locked, bg_locked, use_theme_colors;
+ gboolean fg_locked, bg_locked, use_theme_colors, bold_same_as_fg;
fg_locked = terminal_profile_property_locked (profile, TERMINAL_PROFILE_FOREGROUND_COLOR);
bg_locked = terminal_profile_property_locked (profile, TERMINAL_PROFILE_BACKGROUND_COLOR);
use_theme_colors = terminal_profile_get_property_boolean (profile, TERMINAL_PROFILE_USE_THEME_COLORS);
+ bold_same_as_fg = terminal_profile_get_property_boolean (profile, TERMINAL_PROFILE_BOLD_COLOR_SAME_AS_FG);
SET_SENSITIVE ("foreground-colorpicker", !use_theme_colors && !fg_locked);
SET_SENSITIVE ("foreground-colorpicker-label", !use_theme_colors && !fg_locked);
SET_SENSITIVE ("background-colorpicker", !use_theme_colors && !bg_locked);
SET_SENSITIVE ("background-colorpicker-label", !use_theme_colors && !bg_locked);
- SET_SENSITIVE ("bold-colorpicker", !use_theme_colors && !fg_locked);
+ SET_SENSITIVE ("bold-color-same-as-fg-checkbox", !use_theme_colors && !fg_locked);
+ SET_SENSITIVE ("bold-colorpicker", !use_theme_colors && !fg_locked && !bold_same_as_fg);
SET_SENSITIVE ("bold-colorpicker-label", !use_theme_colors && !fg_locked);
SET_SENSITIVE ("color-scheme-combobox", !use_theme_colors && !fg_locked && !bg_locked);
SET_SENSITIVE ("color-scheme-combobox-label", !use_theme_colors && !fg_locked && !bg_locked);
@@ -290,7 +293,7 @@ color_scheme_combo_changed_cb (GtkWidget *combo,
g_object_set (profile,
TERMINAL_PROFILE_FOREGROUND_COLOR, &color_schemes[i].foreground,
TERMINAL_PROFILE_BACKGROUND_COLOR, &color_schemes[i].background,
- TERMINAL_PROFILE_BOLD_COLOR, &color_schemes[i].bold,
+ TERMINAL_PROFILE_BOLD_COLOR_SAME_AS_FG, TRUE,
NULL);
g_signal_handlers_unblock_by_func (profile, G_CALLBACK (profile_colors_notify_scheme_combo_cb), combo);
}
@@ -305,19 +308,26 @@ profile_colors_notify_scheme_combo_cb (TerminalProfile *profile,
GParamSpec *pspec,
GtkComboBox *combo)
{
- const GdkColor *fg, *bg, *bold;
+ const GdkColor *fg, *bg;
guint i;
+ gboolean bold_same_as_fg;
fg = terminal_profile_get_property_boxed (profile, TERMINAL_PROFILE_FOREGROUND_COLOR);
bg = terminal_profile_get_property_boxed (profile, TERMINAL_PROFILE_BACKGROUND_COLOR);
- bold = terminal_profile_get_property_boxed (profile, TERMINAL_PROFILE_BOLD_COLOR);
+ bold_same_as_fg = terminal_profile_get_property_boolean (profile, TERMINAL_PROFILE_BOLD_COLOR_SAME_AS_FG);
- for (i = 0; i < G_N_ELEMENTS (color_schemes); ++i)
+ if (fg && bg && bold_same_as_fg)
{
- if (fg && gdk_color_equal (fg, &color_schemes[i].foreground) &&
- bg && gdk_color_equal (bg, &color_schemes[i].background) &&
- bold && gdk_color_equal (bold, &color_schemes[i].bold))
- break;
+ for (i = 0; i < G_N_ELEMENTS (color_schemes); ++i)
+ {
+ if (gdk_color_equal (fg, &color_schemes[i].foreground) &&
+ gdk_color_equal (bg, &color_schemes[i].background))
+ break;
+ }
+ }
+ else
+ {
+ i = G_N_ELEMENTS (color_schemes);
}
/* If we didn't find a match, then we get the last combo box item which is "custom" */
@@ -763,7 +773,7 @@ terminal_profile_edit (TerminalProfile *profile,
g_signal_connect (profile, "notify::" TERMINAL_PROFILE_BACKGROUND_COLOR,
G_CALLBACK (profile_colors_notify_scheme_combo_cb),
w);
- g_signal_connect (profile, "notify::" TERMINAL_PROFILE_BOLD_COLOR,
+ g_signal_connect (profile, "notify::" TERMINAL_PROFILE_BOLD_COLOR_SAME_AS_FG,
G_CALLBACK (profile_colors_notify_scheme_combo_cb),
w);
@@ -790,6 +800,7 @@ terminal_profile_edit (TerminalProfile *profile,
CONNECT ("background-colorpicker", TERMINAL_PROFILE_BACKGROUND_COLOR);
CONNECT ("background-image-filechooser", TERMINAL_PROFILE_BACKGROUND_IMAGE_FILE);
CONNECT ("backspace-binding-combobox", TERMINAL_PROFILE_BACKSPACE_BINDING);
+ CONNECT ("bold-color-same-as-fg-checkbox", TERMINAL_PROFILE_BOLD_COLOR_SAME_AS_FG);
CONNECT ("bold-colorpicker", TERMINAL_PROFILE_BOLD_COLOR);
CONNECT ("cursor-shape-combobox", TERMINAL_PROFILE_CURSOR_SHAPE);
CONNECT ("custom-command-entry", TERMINAL_PROFILE_CUSTOM_COMMAND);
diff --git a/src/profile-preferences.glade b/src/profile-preferences.glade
index 73056fb..2976fc2 100644
--- a/src/profile-preferences.glade
+++ b/src/profile-preferences.glade
@@ -1210,7 +1210,22 @@ Hold the terminal open</property>
</child>
<child>
- <placeholder/>
+ <widget class="GtkCheckButton" id="bold-color-same-as-fg-checkbox">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Same as text color</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">True</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">8</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
</child>
</widget>
<packing>
diff --git a/src/terminal-profile.c b/src/terminal-profile.c
index 5e8b340..1b9ca35 100644
--- a/src/terminal-profile.c
+++ b/src/terminal-profile.c
@@ -55,6 +55,7 @@ enum
PROP_BACKGROUND_TYPE,
PROP_BACKSPACE_BINDING,
PROP_BOLD_COLOR,
+ PROP_BOLD_COLOR_SAME_AS_FG,
PROP_CURSOR_BLINK_MODE,
PROP_CURSOR_SHAPE,
PROP_CUSTOM_COMMAND,
@@ -91,6 +92,7 @@ enum
#define KEY_BACKGROUND_TYPE "background_type"
#define KEY_BACKSPACE_BINDING "backspace_binding"
#define KEY_BOLD_COLOR "bold_color"
+#define KEY_BOLD_COLOR_SAME_AS_FG "bold_color_same_as_fg"
#define KEY_CURSOR_BLINK_MODE "cursor_blink_mode"
#define KEY_CURSOR_SHAPE "cursor_shape"
#define KEY_CUSTOM_COMMAND "custom_command"
@@ -120,6 +122,7 @@ enum
/* Keep these in sync with the GConf schema! */
#define DEFAULT_ALLOW_BOLD (TRUE)
#define DEFAULT_BACKGROUND_COLOR ("#FFFFDD")
+#define DEFAULT_BOLD_COLOR_SAME_AS_FG (TRUE)
#define DEFAULT_BACKGROUND_DARKNESS (0.5)
#define DEFAULT_BACKGROUND_IMAGE_FILE ("")
#define DEFAULT_BACKGROUND_IMAGE (NULL)
@@ -1279,6 +1282,7 @@ terminal_profile_class_init (TerminalProfileClass *klass)
propGConf)
TERMINAL_PROFILE_PROPERTY_BOOLEAN (ALLOW_BOLD, DEFAULT_ALLOW_BOLD, KEY_ALLOW_BOLD);
+ TERMINAL_PROFILE_PROPERTY_BOOLEAN (BOLD_COLOR_SAME_AS_FG, DEFAULT_BOLD_COLOR_SAME_AS_FG, KEY_BOLD_COLOR_SAME_AS_FG);
TERMINAL_PROFILE_PROPERTY_BOOLEAN (DEFAULT_SHOW_MENUBAR, DEFAULT_DEFAULT_SHOW_MENUBAR, KEY_DEFAULT_SHOW_MENUBAR);
TERMINAL_PROFILE_PROPERTY_BOOLEAN (LOGIN_SHELL, DEFAULT_LOGIN_SHELL, KEY_LOGIN_SHELL);
TERMINAL_PROFILE_PROPERTY_BOOLEAN (SCROLL_BACKGROUND, DEFAULT_SCROLL_BACKGROUND, KEY_SCROLL_BACKGROUND);
diff --git a/src/terminal-profile.h b/src/terminal-profile.h
index 087859b..ab72827 100644
--- a/src/terminal-profile.h
+++ b/src/terminal-profile.h
@@ -73,6 +73,7 @@ typedef enum
#define TERMINAL_PROFILE_BACKGROUND_TYPE "background-type"
#define TERMINAL_PROFILE_BACKSPACE_BINDING "backspace-binding"
#define TERMINAL_PROFILE_BOLD_COLOR "bold-color"
+#define TERMINAL_PROFILE_BOLD_COLOR_SAME_AS_FG "bold-color-same-as-fg"
#define TERMINAL_PROFILE_CURSOR_BLINK_MODE "cursor-blink-mode"
#define TERMINAL_PROFILE_CURSOR_SHAPE "cursor-shape"
#define TERMINAL_PROFILE_CUSTOM_COMMAND "custom-command"
diff --git a/src/terminal-screen.c b/src/terminal-screen.c
index 353ecb1..66dac2b 100644
--- a/src/terminal-screen.c
+++ b/src/terminal-screen.c
@@ -966,6 +966,7 @@ terminal_screen_profile_notify_cb (TerminalProfile *profile,
prop_name == I_(TERMINAL_PROFILE_USE_THEME_COLORS) ||
prop_name == I_(TERMINAL_PROFILE_FOREGROUND_COLOR) ||
prop_name == I_(TERMINAL_PROFILE_BACKGROUND_COLOR) ||
+ prop_name == I_(TERMINAL_PROFILE_BOLD_COLOR_SAME_AS_FG) ||
prop_name == I_(TERMINAL_PROFILE_BOLD_COLOR) ||
prop_name == I_(TERMINAL_PROFILE_PALETTE))
update_color_scheme (screen);
@@ -1097,7 +1098,9 @@ update_color_scheme (TerminalScreen *screen)
{
fg_color = terminal_profile_get_property_boxed (profile, TERMINAL_PROFILE_FOREGROUND_COLOR);
bg_color = terminal_profile_get_property_boxed (profile, TERMINAL_PROFILE_BACKGROUND_COLOR);
- bold_color = terminal_profile_get_property_boxed (profile, TERMINAL_PROFILE_BOLD_COLOR);
+
+ if (!terminal_profile_get_property_boolean (profile, TERMINAL_PROFILE_BOLD_COLOR_SAME_AS_FG))
+ bold_color = terminal_profile_get_property_boxed (profile, TERMINAL_PROFILE_BOLD_COLOR);
if (fg_color)
fg = *fg_color;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]