Ctrl-PgUp and Ctrl-PgDn now scroll by one line on Unix and Windows
[sgt/putty] / unix / pterm.c
index cc6b2d0..69538f7 100644 (file)
@@ -483,10 +483,18 @@ gint key_event(GtkWidget *widget, GdkEventKey *event, gpointer data)
            term_scroll(inst->term, 0, -inst->cfg.height/2);
            return TRUE;
        }
+       if (event->keyval == GDK_Page_Up && (event->state & GDK_CONTROL_MASK)) {
+           term_scroll(inst->term, 0, -1);
+           return TRUE;
+       }
        if (event->keyval == GDK_Page_Down && (event->state & GDK_SHIFT_MASK)) {
            term_scroll(inst->term, 0, +inst->cfg.height/2);
            return TRUE;
        }
+       if (event->keyval == GDK_Page_Down && (event->state & GDK_CONTROL_MASK)) {
+           term_scroll(inst->term, 0, +1);
+           return TRUE;
+       }
 
        /*
         * Neither does Shift-Ins.
@@ -2251,12 +2259,6 @@ int main(int argc, char **argv)
 
     gtk_init(&argc, &argv);
 
-    if (do_cmdline(argc, argv, 0, &inst->cfg))
-       exit(1);                       /* pre-defaults pass to get -class */
-    do_defaults(NULL, &inst->cfg);
-    if (do_cmdline(argc, argv, 1, &inst->cfg))
-       exit(1);                       /* post-defaults, do everything */
-
     /*
      * Create an instance structure and initialise to zeroes
      */
@@ -2264,6 +2266,12 @@ int main(int argc, char **argv)
     memset(inst, 0, sizeof(*inst));
     inst->alt_keycode = -1;            /* this one needs _not_ to be zero */
 
+    if (do_cmdline(argc, argv, 0, &inst->cfg))
+       exit(1);                       /* pre-defaults pass to get -class */
+    do_defaults(NULL, &inst->cfg);
+    if (do_cmdline(argc, argv, 1, &inst->cfg))
+       exit(1);                       /* post-defaults, do everything */
+
     inst->fonts[0] = gdk_font_load(inst->cfg.font);
     if (!inst->fonts[0]) {
        fprintf(stderr, "pterm: unable to load font \"%s\"\n", inst->cfg.font);