From a9d6a34708f846952f423d078397352858f7b1a4 Mon Sep 17 00:00:00 2001
From: Christian Persch <chpe@gnome.org>
Date: Sat, 12 May 2012 18:48:05 +0200
Subject: [PATCH] keymap: Treat ALT as META

https://bugzilla.gnome.org/show_bug.cgi?id=663779
---
 src/vte.c |   23 ++++++++++++++---------
 1 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/src/vte.c b/src/vte.c
index dd27e9a..0657921 100644
--- a/src/vte.c
+++ b/src/vte.c
@@ -5170,19 +5170,24 @@ static void
 vte_terminal_read_modifiers (VteTerminal *terminal,
 			     GdkEvent *event)
 {
+        GdkKeymap *keymap;
 	GdkModifierType modifiers;
 
 	/* Read the modifiers. */
-	if (gdk_event_get_state((GdkEvent*)event, &modifiers)) {
-		GdkKeymap *keymap;
-#if GTK_CHECK_VERSION (2, 90, 8)
-                keymap = gdk_keymap_get_for_display(gdk_window_get_display(((GdkEventAny*)event)->window));
-#else
-                keymap = gdk_keymap_get_for_display(gdk_drawable_get_display(((GdkEventAny*)event)->window));
+	if (!gdk_event_get_state((GdkEvent*)event, &modifiers))
+                return;
+
+        keymap = gdk_keymap_get_for_display(gdk_window_get_display(((GdkEventAny*)event)->window));
+
+        gdk_keymap_add_virtual_modifiers (keymap, &modifiers);
+
+#if 1
+        /* HACK! Treat ALT as META; see bug #663779. */
+        if (modifiers & GDK_MOD1_MASK)
+                modifiers |= VTE_META_MASK;
 #endif
-                gdk_keymap_add_virtual_modifiers (keymap, &modifiers);
-		terminal->pvt->modifiers = modifiers;
-	}
+
+        terminal->pvt->modifiers = modifiers;
 }
 
 /* Read and handle a keypress event. */
-- 
1.7.5.1.217.g4e3aa.dirty
