[vte] widget: Continue treating Meta as Alt
- From: Christian Persch <chpe src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vte] widget: Continue treating Meta as Alt
- Date: Fri, 1 May 2020 21:11:04 +0000 (UTC)
commit b898f1da0591ad60db811b68c9e442f4eef55ba6
Author: Christian Persch <chpe src gnome org>
Date: Fri May 1 23:08:42 2020 +0200
widget: Continue treating Meta as Alt
This partially reverts commit 2965a10e63d024a9318976ae2bf81621b31809b1.
The original change is correct, but needs more work, so revert the
parts that are observable by the terminal app/user for now.
The sequences vte sends are those for Alt, not Meta; so rename
all occurrences of 'meta' to alt.
src/modes-private.hh | 4 ++--
src/modes-test.cc | 2 +-
src/modes.hh | 2 +-
src/vte.cc | 2 +-
src/widget.cc | 6 ++++++
5 files changed, 11 insertions(+), 5 deletions(-)
---
diff --git a/src/modes-private.hh b/src/modes-private.hh
index 099eb91d..2dab1f8d 100644
--- a/src/modes-private.hh
+++ b/src/modes-private.hh
@@ -157,7 +157,7 @@ MODE(XTERM_MOUSE_ANY_EVENT, 1003)
MODE(XTERM_FOCUS, 1004)
MODE(XTERM_MOUSE_EXT_SGR, 1006)
MODE(XTERM_ALTBUF_SCROLL, 1007)
-MODE(XTERM_ALT_SENDS_ESCAPE, 1039)
+MODE(XTERM_META_SENDS_ESCAPE, 1036)
MODE(XTERM_OPT_ALTBUF, 1047)
MODE(XTERM_SAVE_CURSOR, 1048)
MODE(XTERM_OPT_ALTBUF_SAVE_CURSOR, 1049)
@@ -846,8 +846,8 @@ MODE_FIXED(XTERM_LOGGING, 46, ALWAYS_RESET)
MODE_FIXED(XTERM_MOUSE_EXT, 1005, ALWAYS_RESET)
MODE_FIXED(XTERM_8BIT_META, 1034, ALWAYS_RESET)
MODE_FIXED(XTERM_NUMLOCK, 1035, ALWAYS_RESET)
-MODE_FIXED(XTERM_META_SENDS_ESCAPE, 1036, ALWAYS_RESET)
MODE_FIXED(XTERM_DELETE_IS_DEL, 1037, ALWAYS_RESET)
+MODE_FIXED(XTERM_ALT_SENDS_ESCAPE, 1039, ALWAYS_RESET)
MODE_FIXED(XTERM_KEEP_SELECTION, 1040, ALWAYS_RESET)
MODE_FIXED(XTERM_KEEP_CLIPBOARD, 1044, ALWAYS_RESET)
MODE_FIXED(XTERM_SELECT_TO_CLIPBOARD, 1041, ALWAYS_RESET)
diff --git a/src/modes-test.cc b/src/modes-test.cc
index 91109c2b..5841485c 100644
--- a/src/modes-test.cc
+++ b/src/modes-test.cc
@@ -59,7 +59,7 @@ test_modes_private(void)
vte::terminal::modes::Private modes{};
g_assert_true(modes.DEC_AUTOWRAP());
- g_assert_true(modes.XTERM_ALT_SENDS_ESCAPE());
+ g_assert_true(modes.XTERM_META_SENDS_ESCAPE());
g_assert_false(modes.XTERM_FOCUS());
modes.set_XTERM_FOCUS(true);
diff --git a/src/modes.hh b/src/modes.hh
index 83165399..48b1b2ce 100644
--- a/src/modes.hh
+++ b/src/modes.hh
@@ -228,7 +228,7 @@ public:
eDEC_TEXT_CURSOR,
eVTE_BIDI_SWAP_ARROW_KEYS,
eXTERM_ALTBUF_SCROLL,
- eXTERM_ALT_SENDS_ESCAPE} { }
+ eXTERM_META_SENDS_ESCAPE} { }
inline void push_saved(int mode)
{
diff --git a/src/vte.cc b/src/vte.cc
index 55e0aa0c..b3271538 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -4929,7 +4929,7 @@ Terminal::widget_key_press(KeyEvent const& event)
&normal,
&normal_length);
}
- if (m_modes_private.XTERM_ALT_SENDS_ESCAPE() &&
+ if (m_modes_private.XTERM_META_SENDS_ESCAPE() &&
!suppress_alt_esc &&
(normal_length > 0) &&
(m_modifiers & VTE_ALT_MASK)) {
diff --git a/src/widget.cc b/src/widget.cc
index bd1b37ee..c4bb17b3 100644
--- a/src/widget.cc
+++ b/src/widget.cc
@@ -254,6 +254,12 @@ Widget::read_modifiers_from_gdk(GdkEvent* event) const noexcept
if (!gdk_event_get_state(event, &mods))
return 0;
+ #if 1
+ /* HACK! Treat META as ALT; see bug #663779. */
+ if (mods & GDK_META_MASK)
+ mods = GdkModifierType(mods | GDK_MOD1_MASK);
+ #endif
+
/* Map non-virtual modifiers to virtual modifiers (Super, Hyper, Meta) */
auto display = gdk_window_get_display(gdk_event_get_window(event));
auto keymap = gdk_keymap_get_for_display(display);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]