All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] allow shift-pageup and shift-pagedown for scrolling in text consoles
@ 2007-02-13 15:46 Stuart Brady
  0 siblings, 0 replies; only message in thread
From: Stuart Brady @ 2007-02-13 15:46 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 552 bytes --]

Hello,

I've attached a patch that allows shift-pageup and shift-pagedown to be
used for scrolling in text consoles.  Some users are surprised that they
have to use ctrl-pageup and ctrl-pagedown instead.

Obviously this does affect all text consoles, and not just the monitor.

I added a separate QEMU_KEY_SHIFT_PAGEUP and QEMU_KEY_SHIFT_PAGEDOWN,
but I'm not sure if I should have renamed QEMU_KEY_CTRL_PAGEUP and
QEMU_KEY_CTRL_PAGEDOWN instead.

It also fixes a minor fomatting problem in the same code.

Does it look okay?

Cheers,
-- 
Stuart Brady

[-- Attachment #2: shift.diff --]
[-- Type: text/plain, Size: 2712 bytes --]

Index: console.c
===================================================================
RCS file: /sources/qemu/qemu/console.c,v
retrieving revision 1.12
diff -u -r1.12 console.c
--- console.c	10 Feb 2007 22:37:56 -0000	1.12
+++ console.c	13 Feb 2007 15:30:49 -0000
@@ -1078,6 +1078,12 @@
     case QEMU_KEY_CTRL_PAGEDOWN:
         console_scroll(10);
         break;
+    case QEMU_KEY_SHIFT_PAGEUP:
+        console_scroll(-10);
+        break;
+    case QEMU_KEY_SHIFT_PAGEDOWN:
+        console_scroll(10);
+        break;
     default:
         /* convert the QEMU keysym to VT100 key string */
         q = buf;
Index: sdl.c
===================================================================
RCS file: /sources/qemu/qemu/sdl.c,v
retrieving revision 1.34
diff -u -r1.34 sdl.c
--- sdl.c	24 Jan 2007 21:40:21 -0000	1.34
+++ sdl.c	13 Feb 2007 15:30:49 -0000
@@ -366,6 +366,12 @@
                         case SDLK_PAGEDOWN: keysym = QEMU_KEY_CTRL_PAGEDOWN; break;
                         default: break;
                         }
+                    } else if (ev->key.keysym.mod & (KMOD_LSHIFT | KMOD_RSHIFT)) {
+                        switch(ev->key.keysym.sym) {
+                        case SDLK_PAGEUP: keysym = QEMU_KEY_SHIFT_PAGEUP; break;
+                        case SDLK_PAGEDOWN: keysym = QEMU_KEY_SHIFT_PAGEDOWN; break;
+                        default: break;
+                        }
                     } else {
                         switch(ev->key.keysym.sym) {
                         case SDLK_UP: keysym = QEMU_KEY_UP; break;
@@ -376,7 +382,8 @@
                         case SDLK_END: keysym = QEMU_KEY_END; break;
                         case SDLK_PAGEUP: keysym = QEMU_KEY_PAGEUP; break;
                         case SDLK_PAGEDOWN: keysym = QEMU_KEY_PAGEDOWN; break;
-                        case SDLK_BACKSPACE: keysym = QEMU_KEY_BACKSPACE; break;                        case SDLK_DELETE: keysym = QEMU_KEY_DELETE; break;
+                        case SDLK_BACKSPACE: keysym = QEMU_KEY_BACKSPACE; break;
+                        case SDLK_DELETE: keysym = QEMU_KEY_DELETE; break;
                         default: break;
                         }
                     }
Index: vl.h
===================================================================
RCS file: /sources/qemu/qemu/vl.h,v
retrieving revision 1.185
diff -u -r1.185 vl.h
--- vl.h	8 Feb 2007 23:09:59 -0000	1.185
+++ vl.h	13 Feb 2007 15:30:49 -0000
@@ -226,6 +226,8 @@
 #define QEMU_KEY_CTRL_END        0xe405
 #define QEMU_KEY_CTRL_PAGEUP     0xe406
 #define QEMU_KEY_CTRL_PAGEDOWN   0xe407
+#define QEMU_KEY_SHIFT_PAGEUP    0xe408
+#define QEMU_KEY_SHIFT_PAGEDOWN  0xe409
 
 void kbd_put_keysym(int keysym);
 

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-02-13 15:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-02-13 15:46 [Qemu-devel] [PATCH] allow shift-pageup and shift-pagedown for scrolling in text consoles Stuart Brady

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.