Ctrl-PgUp and Ctrl-PgDn now scroll by one line on Unix and Windows
[sgt/putty] / unix / pterm.c
index a5367a0..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.
@@ -2061,7 +2069,7 @@ int do_cmdline(int argc, char **argv, int do_everything, Config *cfg)
 
        } else if (!strcmp(p, "-fg") || !strcmp(p, "-bg") ||
                   !strcmp(p, "-bfg") || !strcmp(p, "-bbg") ||
-                  !strcmp(p, "-inst->cfg") || !strcmp(p, "-cbg")) {
+                  !strcmp(p, "-cfg") || !strcmp(p, "-cbg")) {
            GdkColor col;
 
            EXPECTS_ARG;
@@ -2075,7 +2083,7 @@ int do_cmdline(int argc, char **argv, int do_everything, Config *cfg)
                         !strcmp(p, "-bg") ? 2 :
                         !strcmp(p, "-bfg") ? 1 :
                         !strcmp(p, "-bbg") ? 3 :
-                        !strcmp(p, "-inst->cfg") ? 4 :
+                        !strcmp(p, "-cfg") ? 4 :
                         !strcmp(p, "-cbg") ? 5 : -1);
                assert(index != -1);
                cfg->colours[index][0] = col.red / 256;
@@ -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);