diff -dPNur vte-0.30.1/src/vte.c vte-0.30.1-ds/src/vte.c --- vte-0.30.1/src/vte.c 2011-09-26 14:32:48.000000000 +0200 +++ vte-0.30.1-ds/src/vte.c 2012-01-23 02:12:16.000000000 +0100 @@ -5389,7 +5390,9 @@ break; case GDK_KEY (KP_Insert): case GDK_KEY (Insert): - if (modifiers & GDK_SHIFT_MASK) { + //printf("%lx %s\n", modifiers, terminal->window_title); + if (strncmp(terminal->window_title, "mc", 2)) { + if (modifiers & GDK_SHIFT_MASK) { if (modifiers & GDK_CONTROL_MASK) { vte_terminal_paste_clipboard(terminal); handled = TRUE; @@ -5399,10 +5402,27 @@ handled = TRUE; suppress_meta_esc = TRUE; } - } else if (modifiers & GDK_CONTROL_MASK) { + } else if (modifiers & GDK_CONTROL_MASK) { vte_terminal_copy_clipboard(terminal); handled = TRUE; suppress_meta_esc = TRUE; + } + } + + if ((modifiers & (GDK_CONTROL_MASK|GDK_SHIFT_MASK)) == (GDK_CONTROL_MASK|GDK_SHIFT_MASK)) { + vte_terminal_paste_primary(terminal); + handled = TRUE; + suppress_meta_esc = TRUE; + } else if (modifiers & (GDK_MOD1_MASK|GDK_META_MASK|0x2000)) { + if (modifiers & GDK_CONTROL_MASK) { + vte_terminal_copy_clipboard(terminal); + handled = TRUE; + suppress_meta_esc = TRUE; + } else if (modifiers & GDK_SHIFT_MASK) { + vte_terminal_paste_clipboard(terminal); + handled = TRUE; + suppress_meta_esc = TRUE; + } } break; /* Keypad/motion keys. */