[vte] terminal: Use an enum class for erase bindings
- From: Christian Persch <chpe src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vte] terminal: Use an enum class for erase bindings
- Date: Mon, 18 Nov 2019 21:43:45 +0000 (UTC)
commit b99ba4e12989d492005859a55b804bc2d4242f72
Author: Christian Persch <chpe src gnome org>
Date: Mon Nov 18 22:42:22 2019 +0100
terminal: Use an enum class for erase bindings
src/vte.cc | 28 ++++++++++++----------------
src/vtegtk.cc | 8 ++++----
src/vteinternal.hh | 19 +++++++++++++++----
src/widget.hh | 6 ++++++
4 files changed, 37 insertions(+), 24 deletions(-)
---
diff --git a/src/vte.cc b/src/vte.cc
index 5e329230..86eae869 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -4716,23 +4716,23 @@ Terminal::widget_key_press(GdkEventKey *event)
switch (keyval) {
case GDK_KEY_BackSpace:
switch (m_backspace_binding) {
- case VTE_ERASE_ASCII_BACKSPACE:
+ case EraseMode::eASCII_BACKSPACE:
normal = g_strdup("");
normal_length = 1;
suppress_meta_esc = FALSE;
break;
- case VTE_ERASE_ASCII_DELETE:
+ case EraseMode::eASCII_DELETE:
normal = g_strdup("");
normal_length = 1;
suppress_meta_esc = FALSE;
break;
- case VTE_ERASE_DELETE_SEQUENCE:
+ case EraseMode::eDELETE_SEQUENCE:
normal = g_strdup("\e[3~");
normal_length = 4;
add_modifiers = TRUE;
suppress_meta_esc = TRUE;
break;
- case VTE_ERASE_TTY:
+ case EraseMode::eTTY:
if (pty() &&
tcgetattr(pty()->fd(), &tio) != -1)
{
@@ -4741,7 +4741,7 @@ Terminal::widget_key_press(GdkEventKey *event)
}
suppress_meta_esc = FALSE;
break;
- case VTE_ERASE_AUTO:
+ case EraseMode::eAUTO:
default:
#ifndef _POSIX_VDISABLE
#define _POSIX_VDISABLE '\0'
@@ -4774,15 +4774,15 @@ Terminal::widget_key_press(GdkEventKey *event)
case GDK_KEY_KP_Delete:
case GDK_KEY_Delete:
switch (m_delete_binding) {
- case VTE_ERASE_ASCII_BACKSPACE:
+ case EraseMode::eASCII_BACKSPACE:
normal = g_strdup("\010");
normal_length = 1;
break;
- case VTE_ERASE_ASCII_DELETE:
+ case EraseMode::eASCII_DELETE:
normal = g_strdup("\177");
normal_length = 1;
break;
- case VTE_ERASE_TTY:
+ case EraseMode::eTTY:
if (pty() &&
tcgetattr(pty()->fd(), &tio) != -1)
{
@@ -4791,8 +4791,8 @@ Terminal::widget_key_press(GdkEventKey *event)
}
suppress_meta_esc = FALSE;
break;
- case VTE_ERASE_DELETE_SEQUENCE:
- case VTE_ERASE_AUTO:
+ case EraseMode::eDELETE_SEQUENCE:
+ case EraseMode::eAUTO:
default:
normal = g_strdup("\e[3~");
normal_length = 4;
@@ -7873,10 +7873,6 @@ Terminal::Terminal(vte::platform::Widget* w,
m_selection_owned[VTE_SELECTION_PRIMARY] = false;
m_selection_owned[VTE_SELECTION_CLIPBOARD] = false;
- /* Miscellaneous options. */
- set_backspace_binding(VTE_ERASE_AUTO);
- set_delete_binding(VTE_ERASE_AUTO);
-
/* Initialize the saved cursor. */
save_cursor(&m_normal_screen);
save_cursor(&m_alternate_screen);
@@ -9922,7 +9918,7 @@ Terminal::set_scrollback_lines(long lines)
}
bool
-Terminal::set_backspace_binding(VteEraseBinding binding)
+Terminal::set_backspace_binding(EraseMode binding)
{
if (binding == m_backspace_binding)
return false;
@@ -9932,7 +9928,7 @@ Terminal::set_backspace_binding(VteEraseBinding binding)
}
bool
-Terminal::set_delete_binding(VteEraseBinding binding)
+Terminal::set_delete_binding(EraseMode binding)
{
if (binding == m_delete_binding)
return false;
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index efb6456f..82f715ee 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -465,7 +465,7 @@ vte_terminal_get_property (GObject *object,
g_value_set_boolean (value, vte_terminal_get_audible_bell (terminal));
break;
case PROP_BACKSPACE_BINDING:
- g_value_set_enum (value, impl->m_backspace_binding);
+ g_value_set_enum (value, widget->backspace_binding());
break;
case PROP_BOLD_IS_BRIGHT:
g_value_set_boolean (value, vte_terminal_get_bold_is_bright (terminal));
@@ -492,7 +492,7 @@ vte_terminal_get_property (GObject *object,
g_value_set_enum (value, vte_terminal_get_cursor_shape (terminal));
break;
case PROP_DELETE_BINDING:
- g_value_set_enum (value, impl->m_delete_binding);
+ g_value_set_enum (value, widget->delete_binding());
break;
case PROP_ENABLE_BIDI:
g_value_set_boolean (value, vte_terminal_get_enable_bidi (terminal));
@@ -3360,7 +3360,7 @@ vte_terminal_set_backspace_binding(VteTerminal *terminal,
g_return_if_fail(VTE_IS_TERMINAL(terminal));
g_return_if_fail(binding >= VTE_ERASE_AUTO && binding <= VTE_ERASE_TTY);
- if (IMPL(terminal)->set_backspace_binding(binding))
+ if (WIDGET(terminal)->set_backspace_binding(binding))
g_object_notify_by_pspec(G_OBJECT(terminal), pspecs[PROP_BACKSPACE_BINDING]);
}
@@ -3830,7 +3830,7 @@ vte_terminal_set_delete_binding(VteTerminal *terminal,
g_return_if_fail(VTE_IS_TERMINAL(terminal));
g_return_if_fail(binding >= VTE_ERASE_AUTO && binding <= VTE_ERASE_TTY);
- if (IMPL(terminal)->set_delete_binding(binding))
+ if (WIDGET(terminal)->set_delete_binding(binding))
g_object_notify_by_pspec(G_OBJECT(terminal), pspecs[PROP_DELETE_BINDING]);
}
diff --git a/src/vteinternal.hh b/src/vteinternal.hh
index 48b72c4a..404b7226 100644
--- a/src/vteinternal.hh
+++ b/src/vteinternal.hh
@@ -348,6 +348,15 @@ protected:
eUNDERLINE
};
+ /* NOTE: This needs to be kept in sync with the public VteEraseMode enum */
+ enum EraseMode {
+ eAUTO,
+ eASCII_BACKSPACE,
+ eASCII_DELETE,
+ eDELETE_SEQUENCE,
+ eTTY,
+ };
+
/* NOTE: This needs to be kept in sync with the public VteTextBlinkMode enum */
enum class TextBlinkMode {
eNEVER = 0,
@@ -494,8 +503,8 @@ public:
ClipboardTextRequestGtk<Terminal> m_paste_request;
/* Miscellaneous options. */
- VteEraseBinding m_backspace_binding;
- VteEraseBinding m_delete_binding;
+ EraseMode m_backspace_binding{EraseMode::eAUTO};
+ EraseMode m_delete_binding{EraseMode::eAUTO};
bool m_audible_bell{true};
bool m_allow_bold{true};
bool m_bold_is_bright{false};
@@ -1283,7 +1292,8 @@ public:
auto text_blink_mode() const noexcept { return m_text_blink_mode; }
bool set_allow_bold(bool setting);
bool set_allow_hyperlink(bool setting);
- bool set_backspace_binding(VteEraseBinding binding);
+ bool set_backspace_binding(EraseMode binding);
+ auto backspace_binding() const noexcept { return m_backspace_binding; }
bool set_background_alpha(double alpha);
bool set_bold_is_bright(bool setting);
bool set_cell_height_scale(double scale);
@@ -1311,7 +1321,8 @@ public:
bool set_cursor_shape(CursorShape shape);
auto cursor_shape() const noexcept { return m_cursor_shape; }
bool set_cursor_style(CursorStyle style);
- bool set_delete_binding(VteEraseBinding binding);
+ bool set_delete_binding(EraseMode binding);
+ auto delete_binding() const noexcept { return m_delete_binding; }
bool set_enable_bidi(bool setting);
bool set_enable_shaping(bool setting);
bool set_encoding(char const* codeset,
diff --git a/src/widget.hh b/src/widget.hh
index 6d17b0cb..023e5e36 100644
--- a/src/widget.hh
+++ b/src/widget.hh
@@ -111,6 +111,12 @@ public:
bool set_cursor_shape(VteCursorShape shape) { return
terminal()->set_cursor_shape(vte::terminal::Terminal::CursorShape(shape)); }
auto cursor_shape() const noexcept { return VteCursorShape(terminal()->cursor_shape()); }
+ bool set_backspace_binding(VteEraseBinding mode) { return
terminal()->set_backspace_binding(vte::terminal::Terminal::EraseMode(mode)); }
+ auto backspace_binding() const noexcept { return VteEraseBinding(terminal()->backspace_binding()); }
+
+ bool set_delete_binding(VteEraseBinding mode) { return
terminal()->set_delete_binding(vte::terminal::Terminal::EraseMode(mode)); }
+ auto delete_binding() const noexcept { return VteEraseBinding(terminal()->delete_binding()); }
+
bool set_text_blink_mode(VteTextBlinkMode mode) { return
terminal()->set_text_blink_mode(vte::terminal::Terminal::TextBlinkMode(mode)); }
auto text_blink_mode() const noexcept { return VteTextBlinkMode(terminal()->text_blink_mode()); }
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]