[Xfce4-commits] [apps/xfce4-terminal] 01/01: Add option for ambigouos-width characters
noreply at xfce.org
noreply at xfce.org
Tue Dec 13 11:49:26 CET 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 57d5d0d1a51d3095a5e40697a82b666c2fe753b0
Author: Igor <f2404 at yandex.ru>
Date: Tue Dec 13 13:49:17 2016 +0300
Add option for ambigouos-width characters
---
terminal/terminal-preferences-dialog.c | 16 ++++++------
terminal/terminal-preferences.c | 14 +++++++++++
terminal/terminal-preferences.glade | 46 +++++++++++++++++++++++++++++++++-
terminal/terminal-preferences.h | 6 +++++
terminal/terminal-screen.c | 16 ++++++++++++
5 files changed, 89 insertions(+), 9 deletions(-)
diff --git a/terminal/terminal-preferences-dialog.c b/terminal/terminal-preferences-dialog.c
index 1ee26b7..4bad43b 100644
--- a/terminal/terminal-preferences-dialog.c
+++ b/terminal/terminal-preferences-dialog.c
@@ -144,13 +144,13 @@ terminal_preferences_dialog_init (TerminalPreferencesDialog *dialog)
"scrolling-bar", "scrolling-unlimited",
"misc-cursor-shape", "misc-cursor-blinks",
"font-allow-bold", "font-use-system",
- "misc-menubar-default",
- "misc-toolbar-default", "misc-borders-default",
- "misc-tab-close-middle-click", "misc-mouse-autohide",
- "misc-rewrap-on-resize", "misc-copy-on-select",
- "shortcuts-no-helpkey", "shortcuts-no-mnemonics",
- "shortcuts-no-menukey", "binding-backspace",
- "binding-delete", "background-mode",
+ "misc-menubar-default", "misc-toolbar-default",
+ "misc-borders-default", "misc-tab-close-middle-click",
+ "misc-mouse-autohide", "misc-rewrap-on-resize",
+ "misc-copy-on-select", "shortcuts-no-helpkey",
+ "shortcuts-no-mnemonics", "shortcuts-no-menukey",
+ "binding-backspace", "binding-delete",
+ "binding-ambiguous-width", "background-mode",
"background-image-style", "color-background-vary",
"dropdown-keep-open-default", "dropdown-keep-above",
"dropdown-toggle-focus", "dropdown-status-icon",
@@ -810,7 +810,7 @@ terminal_preferences_dialog_reset_compat (GtkWidget *button,
{
GParamSpec *spec;
GValue value = { 0, };
- const gchar *properties[] = { "binding-backspace", "binding-delete" };
+ const gchar *properties[] = { "binding-backspace", "binding-delete", "binding-ambiguous-width" };
guint i;
for (i = 0; i < G_N_ELEMENTS (properties); i++)
diff --git a/terminal/terminal-preferences.c b/terminal/terminal-preferences.c
index 42cb4fb..30ad359 100644
--- a/terminal/terminal-preferences.c
+++ b/terminal/terminal-preferences.c
@@ -50,6 +50,7 @@ enum
PROP_BACKGROUND_IMAGE_SHADING,
PROP_BINDING_BACKSPACE,
PROP_BINDING_DELETE,
+ PROP_BINDING_AMBIGUOUS_WIDTH,
PROP_COLOR_FOREGROUND,
PROP_COLOR_BACKGROUND,
PROP_COLOR_BACKGROUND_VARY,
@@ -286,6 +287,8 @@ terminal_preferences_class_init (TerminalPreferencesClass *klass)
g_value_register_transform_func (G_TYPE_STRING, TERMINAL_TYPE_TITLE, transform_string_to_enum);
if (!g_value_type_transformable (G_TYPE_STRING, TERMINAL_TYPE_ERASE_BINDING))
g_value_register_transform_func (G_TYPE_STRING, TERMINAL_TYPE_ERASE_BINDING, transform_string_to_enum);
+ if (!g_value_type_transformable (G_TYPE_STRING, TERMINAL_TYPE_AMBIGUOUS_WIDTH_BINDING))
+ g_value_register_transform_func (G_TYPE_STRING, TERMINAL_TYPE_AMBIGUOUS_WIDTH_BINDING, transform_string_to_enum);
if (!g_value_type_transformable (G_TYPE_STRING, TERMINAL_TYPE_CURSOR_SHAPE))
g_value_register_transform_func (G_TYPE_STRING, TERMINAL_TYPE_CURSOR_SHAPE, transform_string_to_enum);
@@ -369,6 +372,17 @@ terminal_preferences_class_init (TerminalPreferencesClass *klass)
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
/**
+ * TerminalPreferences:binding-ambiguous-width:
+ **/
+ preferences_props[PROP_BINDING_AMBIGUOUS_WIDTH] =
+ g_param_spec_enum ("binding-ambiguous-width",
+ NULL,
+ "BindingAmbiguousWidth",
+ TERMINAL_TYPE_AMBIGUOUS_WIDTH_BINDING,
+ TERMINAL_AMBIGUOUS_WIDTH_BINDING_NARROW,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+ /**
* TerminalPreferences:color-foreground:
**/
preferences_props[PROP_COLOR_FOREGROUND] =
diff --git a/terminal/terminal-preferences.glade b/terminal/terminal-preferences.glade
index e119dea..faa85a2 100644
--- a/terminal/terminal-preferences.glade
+++ b/terminal/terminal-preferences.glade
@@ -192,6 +192,20 @@
</row>
</data>
</object>
+ <object class="GtkListStore" id="liststore8">
+ <columns>
+ <!-- column-name title -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Narrow</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">Wide</col>
+ </row>
+ </data>
+ </object>
<object class="GtkAdjustment" id="scrolling-line">
<property name="lower">1</property>
<property name="upper">5242880</property>
@@ -2729,10 +2743,40 @@ different terminal behavior.</property>
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">2</property>
+ <property name="top_attach">3</property>
<property name="width">2</property>
</packing>
</child>
+ <child>
+ <object class="GtkLabel" id="label33">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">_Ambiguous-width characters:</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="binding-ambiguous-width">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="model">liststore8</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext10"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
diff --git a/terminal/terminal-preferences.h b/terminal/terminal-preferences.h
index 392586c..26ca2f5 100644
--- a/terminal/terminal-preferences.h
+++ b/terminal/terminal-preferences.h
@@ -73,6 +73,12 @@ typedef enum /*< enum,prefix=TERMINAL_ERASE_BINDING >*/
TERMINAL_ERASE_BINDING_ERASE_TTY /* TTY Erase */
} TerminalEraseBinding;
+typedef enum /*< enum,prefix=TERMINAL_AMBIGUOUS_WIDTH_BINDING >*/
+{
+ TERMINAL_AMBIGUOUS_WIDTH_BINDING_NARROW,
+ TERMINAL_AMBIGUOUS_WIDTH_BINDING_WIDE
+} TerminalAmbiguousWidthBinding;
+
typedef enum /*< enum,prefix=TERMINAL_CURSOR_SHAPE >*/
{
TERMINAL_CURSOR_SHAPE_BLOCK,
diff --git a/terminal/terminal-screen.c b/terminal/terminal-screen.c
index fd203f5..c7ca0ce 100644
--- a/terminal/terminal-screen.c
+++ b/terminal/terminal-screen.c
@@ -108,6 +108,7 @@ static gchar **terminal_screen_get_child_environment (TerminalScreen
static void terminal_screen_update_background (TerminalScreen *screen);
static void terminal_screen_update_binding_backspace (TerminalScreen *screen);
static void terminal_screen_update_binding_delete (TerminalScreen *screen);
+static void terminal_screen_update_binding_ambiguous_width(TerminalScreen *screen);
static void terminal_screen_update_encoding (TerminalScreen *screen);
static void terminal_screen_update_colors (TerminalScreen *screen);
static void terminal_screen_update_misc_bell (TerminalScreen *screen);
@@ -286,6 +287,7 @@ terminal_screen_init (TerminalScreen *screen)
/* apply current settings */
terminal_screen_update_binding_backspace (screen);
terminal_screen_update_binding_delete (screen);
+ terminal_screen_update_binding_ambiguous_width (screen);
terminal_screen_update_encoding (screen);
terminal_screen_update_font (screen);
terminal_screen_update_misc_bell (screen);
@@ -537,6 +539,8 @@ terminal_screen_preferences_changed (TerminalPreferences *preferences,
terminal_screen_update_binding_backspace (screen);
else if (strcmp ("binding-delete", name) == 0)
terminal_screen_update_binding_delete (screen);
+ else if (strcmp ("binding-ambiguous-width", name) == 0)
+ terminal_screen_update_binding_ambiguous_width (screen);
else if (strncmp ("color-", name, strlen ("color-")) == 0)
terminal_screen_update_colors (screen);
else if (strncmp ("font-", name, strlen ("font-")) == 0)
@@ -889,6 +893,18 @@ terminal_screen_update_binding_delete (TerminalScreen *screen)
static void
+terminal_screen_update_binding_ambiguous_width (TerminalScreen *screen)
+{
+ TerminalAmbiguousWidthBinding binding;
+
+ g_object_get (G_OBJECT (screen->preferences), "binding-ambiguous-width", &binding, NULL);
+ vte_terminal_set_cjk_ambiguous_width (VTE_TERMINAL (screen->terminal),
+ binding == TERMINAL_AMBIGUOUS_WIDTH_BINDING_NARROW ? 1 : 2);
+}
+
+
+
+static void
terminal_screen_update_encoding (TerminalScreen *screen)
{
gchar *encoding;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list