From 5ead207060a3e1f74ad6200fdf02934457394bc2 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Sat, 13 Sep 2008 18:26:53 +0000 Subject: Patch from James H to centralise some generally useful cursor- handling functionality into misc.c. [originally from svn r8176] --- midend.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'midend.c') diff --git a/midend.c b/midend.c index 215482d..a316bcd 100644 --- a/midend.c +++ b/midend.c @@ -683,6 +683,14 @@ int midend_process_key(midend *me, int x, int y, int button) * like a left click for the benefit of users of other * implementations. So the last of the above points is modified * in the presence of an (optional) button priority order. + * + * A further addition: we translate certain keyboard presses to + * cursor key 'select' buttons, so that a) frontends don't have + * to translate these themselves (like they do for CURSOR_UP etc), + * and b) individual games don't have to hard-code button presses + * of '\n' etc for keyboard-based cursors. The choice of buttons + * here could eventually be controlled by a runtime configuration + * option. */ if (IS_MOUSE_DRAG(button) || IS_MOUSE_RELEASE(button)) { if (me->pressed_mouse_button) { @@ -713,6 +721,14 @@ int midend_process_key(midend *me, int x, int y, int button) } /* + * Translate keyboard presses to cursor selection. + */ + if (button == '\n' || button == '\r') + button = CURSOR_SELECT; + if (button == ' ') + button = CURSOR_SELECT2; + + /* * Now send on the event we originally received. */ ret = ret && midend_really_process_key(me, x, y, button); -- cgit v1.1