X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/59b0bfe7f0e692659cc84d7647f171f8fbd89eb9..720f700ea5af91c2faab20e74515f157e6e8cbdf:/unix/gtkwin.c diff --git a/unix/gtkwin.c b/unix/gtkwin.c index 393d98f5..93e96da1 100644 --- a/unix/gtkwin.c +++ b/unix/gtkwin.c @@ -1052,19 +1052,8 @@ gint key_event(GtkWidget *widget, GdkEventKey *event, gpointer data) case GDK_Begin: case GDK_KP_Begin: xkey = 'G'; break; } if (xkey) { - /* - * The arrow keys normally do ESC [ A and so on. In - * app cursor keys mode they do ESC O A instead. - * Ctrl toggles the two modes. - */ - if (inst->term->vt52_mode) { - end = 1 + sprintf(output+1, "\033%c", xkey); - } else if (!inst->term->app_cursor_keys ^ - !(event->state & GDK_CONTROL_MASK)) { - end = 1 + sprintf(output+1, "\033O%c", xkey); - } else { - end = 1 + sprintf(output+1, "\033[%c", xkey); - } + end = 1 + format_arrow_key(output+1, inst->term, xkey, + event->state & GDK_CONTROL_MASK); use_ucsoutput = FALSE; goto done; }