--- vte2.91-0.60.1-orig/src/vte.cc 2020-06-13 16:23:49.000000000 +0200 +++ vte2.91-0.60.1/src/vte.cc 2020-06-13 16:36:39.000000000 +0200 @@ -4773,7 +4773,9 @@ break; case GDK_KEY_KP_Insert: case GDK_KEY_Insert: - if (m_modifiers & GDK_SHIFT_MASK) { + //printf("%lx %s\n", modifiers, terminal->window_title); + if (strncmp(vte_terminal_get_window_title(m_terminal), "mc", 2)) { + if (m_modifiers & GDK_SHIFT_MASK) { if (m_modifiers & GDK_CONTROL_MASK) { emit_paste_clipboard(); handled = TRUE; @@ -4783,11 +4785,29 @@ handled = TRUE; suppress_meta_esc = TRUE; } - } else if (m_modifiers & GDK_CONTROL_MASK) { + } else if (m_modifiers & GDK_CONTROL_MASK) { emit_copy_clipboard(); handled = TRUE; suppress_meta_esc = TRUE; + } } + + if ((m_modifiers & (GDK_CONTROL_MASK|GDK_SHIFT_MASK)) == (GDK_CONTROL_MASK|GDK_SHIFT_MASK)) { + widget_paste(GDK_SELECTION_PRIMARY); + handled = TRUE; + suppress_meta_esc = TRUE; + } else if (m_modifiers & (GDK_MOD1_MASK|GDK_META_MASK|0x2000)) { + if (m_modifiers & GDK_CONTROL_MASK) { + emit_copy_clipboard(); + handled = TRUE; + suppress_meta_esc = TRUE; + } else if (m_modifiers & GDK_SHIFT_MASK) { + widget_paste(GDK_SELECTION_PRIMARY); + handled = TRUE; + suppress_meta_esc = TRUE; + } + } + break; /* Keypad/motion keys. */ case GDK_KEY_KP_Up: