[Xfce4-commits] <terminal:master> Allow setting the bold color (bug #5987).
Nick Schermer
noreply at xfce.org
Tue Dec 25 13:26:01 CET 2012
Updating branch refs/heads/master
to 1cb91001d3ee1e45793a1ad3f0e0db631597440d (commit)
from a37874da585ba11fc4e1ed09181ca60944510313 (commit)
commit 1cb91001d3ee1e45793a1ad3f0e0db631597440d
Author: Nick Schermer <nick at xfce.org>
Date: Tue Dec 25 13:24:27 2012 +0100
Allow setting the bold color (bug #5987).
terminal/terminal-preferences-dialog.c | 23 ++++---
terminal/terminal-preferences.c | 22 +++++++
terminal/terminal-preferences.glade | 105 +++++++++++++++++++-------------
terminal/terminal-screen.c | 26 ++++++--
4 files changed, 118 insertions(+), 58 deletions(-)
diff --git a/terminal/terminal-preferences-dialog.c b/terminal/terminal-preferences-dialog.c
index 88d52e5..8a14aab 100644
--- a/terminal/terminal-preferences-dialog.c
+++ b/terminal/terminal-preferences-dialog.c
@@ -127,7 +127,7 @@ terminal_preferences_dialog_init (TerminalPreferencesDialog *dialog)
"scrolling-on-output", "scrolling-on-keystroke",
"scrolling-bar", "font-allow-bold",
"misc-menubar-default", "misc-toolbars-default",
- "misc-borders-default", "color-selection-use-default",
+ "misc-borders-default",
"shortcuts-no-mnemonics", "shortcuts-no-menukey",
"binding-backspace", "binding-delete",
"background-mode", "background-image-style",
@@ -135,7 +135,7 @@ terminal_preferences_dialog_init (TerminalPreferencesDialog *dialog)
};
const gchar *props_color[] = { "color-foreground", "color-cursor",
"color-background", "tab-activity-color",
- "color-selection"
+ "color-selection", "color-bold"
};
dialog->preferences = terminal_preferences_get ();
@@ -218,18 +218,23 @@ error:
g_signal_connect (G_OBJECT (object), "clicked",
G_CALLBACK (terminal_preferences_dialog_reset_word_chars), dialog);
- /* inverted action between cursor color selections */
- object = gtk_builder_get_object (GTK_BUILDER (dialog), "color-selection-use-color");
+ /* inverted custom colors and set sensitivity */
+ object = gtk_builder_get_object (GTK_BUILDER (dialog), "color-selection-custom");
terminal_return_if_fail (G_IS_OBJECT (object));
g_object_bind_property (G_OBJECT (dialog->preferences), "color-selection-use-default",
G_OBJECT (object), "active",
- G_BINDING_INVERT_BOOLEAN | G_BINDING_SYNC_CREATE);
+ G_BINDING_INVERT_BOOLEAN | G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL);
+ object2 = gtk_builder_get_object (GTK_BUILDER (dialog), "color-selection");
+ g_object_bind_property (G_OBJECT (object), "active",
+ G_OBJECT (object2), "sensitive",
+ G_BINDING_SYNC_CREATE);
- /* sensitivity for custom selection color */
- object = gtk_builder_get_object (GTK_BUILDER (dialog), "color-selection-use-color");
+ object = gtk_builder_get_object (GTK_BUILDER (dialog), "color-bold-custom");
terminal_return_if_fail (G_IS_OBJECT (object));
- object2 = gtk_builder_get_object (GTK_BUILDER (dialog), "color-selection");
- terminal_return_if_fail (G_IS_OBJECT (object2));
+ g_object_bind_property (G_OBJECT (dialog->preferences), "color-bold-use-default",
+ G_OBJECT (object), "active",
+ G_BINDING_INVERT_BOOLEAN | G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL);
+ object2 = gtk_builder_get_object (GTK_BUILDER (dialog), "color-bold");
g_object_bind_property (G_OBJECT (object), "active",
G_OBJECT (object2), "sensitive",
G_BINDING_SYNC_CREATE);
diff --git a/terminal/terminal-preferences.c b/terminal/terminal-preferences.c
index 522f7cd..5010f25 100644
--- a/terminal/terminal-preferences.c
+++ b/terminal/terminal-preferences.c
@@ -56,6 +56,8 @@ enum
PROP_COLOR_CURSOR,
PROP_COLOR_SELECTION,
PROP_COLOR_SELECTION_USE_DEFAULT,
+ PROP_COLOR_BOLD,
+ PROP_COLOR_BOLD_USE_DEFAULT,
PROP_COLOR_PALETTE,
PROP_COMMAND_UPDATE_RECORDS,
PROP_COMMAND_LOGIN_SHELL,
@@ -393,6 +395,26 @@ terminal_preferences_class_init (TerminalPreferencesClass *klass)
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
/**
+ * TerminalPreferences:color-bold:
+ **/
+ preferences_props[PROP_COLOR_BOLD] =
+ g_param_spec_string ("color-bold",
+ "color-bold",
+ "ColorBold",
+ "#ffffff",
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+ /**
+ * TerminalPreferences:color-bold-use-default:
+ **/
+ preferences_props[PROP_COLOR_BOLD_USE_DEFAULT] =
+ g_param_spec_boolean ("color-bold-use-default",
+ "color-bold-use-default",
+ "ColorBoldUseDefault",
+ TRUE,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+ /**
* TerminalPreferences:color-palette:
**/
preferences_props[PROP_COLOR_PALETTE] =
diff --git a/terminal/terminal-preferences.glade b/terminal/terminal-preferences.glade
index b8c1fb2..0b78d85 100644
--- a/terminal/terminal-preferences.glade
+++ b/terminal/terminal-preferences.glade
@@ -1134,7 +1134,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
- <property name="title" translatable="yes">Choose terminal background color</property>
+ <property name="title" translatable="yes">Choose background color</property>
<property name="color">#000000000000</property>
<child internal-child="accessible">
<object class="AtkObject" id="color-background-atkobject">
@@ -1164,7 +1164,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
- <property name="title" translatable="yes">Choose terminal text color</property>
+ <property name="title" translatable="yes">Choose text color</property>
<property name="color">#000000000000</property>
<child internal-child="accessible">
<object class="AtkObject" id="color-foreground-atkobject">
@@ -1192,7 +1192,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
- <property name="title" translatable="yes">Choose terminal cursor color</property>
+ <property name="title" translatable="yes">Choose cursor color</property>
<property name="color">#000000000000</property>
<child internal-child="accessible">
<object class="AtkObject" id="color-cursor-atkobject">
@@ -1272,59 +1272,42 @@
<property name="can_focus">False</property>
<property name="left_padding">12</property>
<child>
- <object class="GtkVBox" id="vbox9">
+ <object class="GtkTable" id="table6">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">6</property>
- <property name="spacing">6</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">2</property>
+ <property name="column_spacing">12</property>
+ <property name="row_spacing">6</property>
<child>
- <object class="GtkRadioButton" id="color-selection-use-default">
- <property name="label" translatable="yes">Use _default color</property>
+ <object class="GtkCheckButton" id="color-selection-custom">
+ <property name="label" translatable="yes">Text _selection color:</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
- <property name="tooltip_text" translatable="yes">Use the default text selection background color</property>
+ <property name="tooltip_text" translatable="yes">Enable this option to set a custom background color for the selection. If disabled the background and text colors will be reversed.</property>
<property name="use_underline">True</property>
- <property name="active">True</property>
<property name="draw_indicator">True</property>
</object>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="x_options">GTK_FILL</property>
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox3">
+ <object class="GtkAlignment" id="alignment22">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">12</property>
- <child>
- <object class="GtkRadioButton" id="color-selection-use-color">
- <property name="label" translatable="yes">Use c_ustom color:</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="tooltip_text" translatable="yes">Use a custom text selection background color</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">color-selection-use-default</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
+ <property name="xalign">0</property>
+ <property name="xscale">0</property>
<child>
<object class="GtkColorButton" id="color-selection">
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
- <property name="title" translatable="yes">Choose terminal text selection background color</property>
+ <property name="title" translatable="yes">Choose text selection background color</property>
<property name="color">#000000000000</property>
<child internal-child="accessible">
<object class="AtkObject" id="color-selection-atkobject">
@@ -1333,17 +1316,52 @@
</object>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="color-bold-custom">
+ <property name="label" translatable="yes">B_old text color:</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="tooltip_text" translatable="yes">Enable this option to set a custom bold color. If disabled the text color will be used.</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment23">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="xscale">0</property>
+ <child>
+ <object class="GtkColorButton" id="color-bold">
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="title" translatable="yes">Choose bold font color</property>
+ <property name="color">#000000000000</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
</packing>
</child>
</object>
@@ -1354,7 +1372,7 @@
<object class="GtkLabel" id="label18">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label" translatable="yes">Text Selection</property>
+ <property name="label" translatable="yes">Custom Colors</property>
<property name="use_markup">True</property>
<attributes>
<attribute name="weight" value="bold"/>
@@ -1390,7 +1408,8 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">Terminal applications have this color palette available to them:</property>
+ <property name="label" translatable="yes">Terminal applications have this color palette available to them.</property>
+ <property name="use_markup">True</property>
</object>
<packing>
<property name="expand">True</property>
diff --git a/terminal/terminal-screen.c b/terminal/terminal-screen.c
index b3178fc..3e4b8cf 100644
--- a/terminal/terminal-screen.c
+++ b/terminal/terminal-screen.c
@@ -294,6 +294,8 @@ terminal_screen_init (TerminalScreen *screen)
"swapped-signal::notify::color-cursor", G_CALLBACK (terminal_screen_update_colors), screen,
"swapped-signal::notify::color-selection", G_CALLBACK (terminal_screen_update_colors), screen,
"swapped-signal::notify::color-selection-use-default", G_CALLBACK (terminal_screen_update_colors), screen,
+ "swapped-signal::notify::color-bold", G_CALLBACK (terminal_screen_update_colors), screen,
+ "swapped-signal::notify::color-bold-use-default", G_CALLBACK (terminal_screen_update_colors), screen,
"swapped-signal::notify::color-palette", G_CALLBACK (terminal_screen_update_colors), screen,
"swapped-signal::notify::font-allow-bold", G_CALLBACK (terminal_screen_update_font), screen,
"swapped-signal::notify::font-name", G_CALLBACK (terminal_screen_update_font), screen,
@@ -816,7 +818,9 @@ terminal_screen_update_colors (TerminalScreen *screen)
GdkColor fg;
GdkColor cursor;
GdkColor selection;
- gboolean use_default;
+ GdkColor bold;
+ gboolean selection_use_default;
+ gboolean bold_use_default;
guint n = 0;
gboolean has_bg;
gboolean has_fg;
@@ -831,7 +835,8 @@ terminal_screen_update_colors (TerminalScreen *screen)
g_object_get (screen->preferences,
"color-palette", &palette_str,
- "color-selection-use-default", &use_default,
+ "color-selection-use-default", &selection_use_default,
+ "color-bold-use-default", &bold_use_default,
"color-background-vary", &vary_bg,
NULL);
@@ -854,7 +859,6 @@ terminal_screen_update_colors (TerminalScreen *screen)
has_bg = terminal_preferences_get_color (screen->preferences, "color-background", &bg);
has_fg = terminal_preferences_get_color (screen->preferences, "color-foreground", &fg);
- has_cursor = terminal_preferences_get_color (screen->preferences, "color-cursor", &cursor);
/* we pick a random hue value to keep readability */
if (vary_bg && has_bg)
@@ -909,11 +913,21 @@ terminal_screen_update_colors (TerminalScreen *screen)
}
vte_terminal_set_background_tint_color (VTE_TERMINAL (screen->terminal), has_bg ? &bg : NULL);
+
+ /* cursor color */
+ has_cursor = terminal_preferences_get_color (screen->preferences, "color-cursor", &cursor);
vte_terminal_set_color_cursor (VTE_TERMINAL (screen->terminal), has_cursor ? &cursor : NULL);
- if (!use_default)
- use_default = !terminal_preferences_get_color (screen->preferences, "color-selection", &selection);
- vte_terminal_set_color_highlight (VTE_TERMINAL (screen->terminal), use_default ? NULL : &selection);
+ /* selection color */
+ if (!selection_use_default)
+ selection_use_default = !terminal_preferences_get_color (screen->preferences, "color-selection", &selection);
+ vte_terminal_set_color_highlight (VTE_TERMINAL (screen->terminal), selection_use_default ? NULL : &selection);
+
+ /* bold color */
+ if (!bold_use_default)
+ bold_use_default = !terminal_preferences_get_color (screen->preferences, "color-bold", &bold);
+ if (!bold_use_default || has_fg)
+ vte_terminal_set_color_bold (VTE_TERMINAL (screen->terminal), bold_use_default ? &fg : &bold);
}
More information about the Xfce4-commits
mailing list