--- vte-0.10.25/src/keymap.c.orig Fri Feb 21 05:02:58 2003 +++ vte-0.10.25/src/keymap.c Mon Mar 3 02:33:09 2003 @@ -184,16 +184,14 @@ * system to system, or mine's just broken. But anyway. */ static struct _vte_keymap_entry _vte_keymap_GDK_Home[] = { {cursor_all, keypad_all, fkey_all, 0, NULL, 0, "kh"}, - {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_CSI "1~", -1, NULL}, + {cursor_all, keypad_all, fkey_nothp, 0, _VTE_CAP_CSI "1~", -1, NULL}, {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "h", -1, NULL}, - {cursor_all, keypad_all, fkey_nothpvt, 0, NULL, 0, "kh"}, {cursor_all, keypad_all, fkey_all, 0, NULL, 0, NULL}, }; static struct _vte_keymap_entry _vte_keymap_GDK_End[] = { {cursor_all, keypad_all, fkey_all, 0, NULL, 0, "@7"}, - {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_CSI "4~", -1, NULL}, - {cursor_all, keypad_all, fkey_notvt220, 0, NULL, 0, "@7"}, + {cursor_all, keypad_all, fkey_all, 0, _VTE_CAP_CSI "4~", -1, NULL}, {cursor_all, keypad_all, fkey_all, 0, NULL, 0, NULL}, }; @@ -968,6 +966,13 @@ *special = NULL; *normal_length = 0; + /* Map Shift-F1 to F11 ... Shift-F10 to F20 */ + if (keyval >= GDK_F1 && keyval <= GDK_F10 && + (modifiers & GDK_SHIFT_MASK)) { + keyval += 10; + modifiers &= ~GDK_SHIFT_MASK; + } + /* Search for the list for this key. */ entries = NULL; for (i = 0; i < G_N_ELEMENTS(_vte_keymap); i++) { @@ -1223,7 +1228,7 @@ _vte_keymap_key_gets_modifiers(guint keyval) { gboolean fkey = FALSE; - /* Determine if this is just a modifier key. */ + /* Determine if the key can take modifiers. */ switch (keyval) { case GDK_Up: case GDK_Down: @@ -1231,6 +1236,8 @@ case GDK_Right: case GDK_Insert: case GDK_Delete: + case GDK_Home: + case GDK_End: case GDK_Page_Up: case GDK_Page_Down: case GDK_KP_Up: