diff -dPNur lcdproc-0.4.5/server/drivers/MtxOrb.c lcdproc-0.4.5-new/server/drivers/MtxOrb.c --- lcdproc-0.4.5/server/drivers/MtxOrb.c 2003-02-03 20:53:58.000000000 +0400 +++ lcdproc-0.4.5-new/server/drivers/MtxOrb.c 2006-05-28 04:29:14.000000000 +0500 @@ -114,6 +114,7 @@ static char pause_key = MTXORB_DEF_PAUSE_KEY, back_key = MTXORB_DEF_BACK_KEY; static char forward_key = MTXORB_DEF_FORWARD_KEY, main_menu_key = MTXORB_DEF_MAIN_MENU_KEY; +static char enter_key = MTXORB_DEF_ENTER_KEY, escape_key = MTXORB_DEF_ESCAPE_KEY; static int keypad_test_mode = 0; static int def[9] = { -1, -1, -1, -1, -1, -1, -1, -1, -1 }; @@ -326,6 +327,14 @@ /* main_menu_key */ main_menu_key = MtxOrb_parse_keypad_setting (DriverName, "MainMenuKey", MTXORB_DEF_MAIN_MENU_KEY); report (RPT_DEBUG, "MtxOrb: Using \"%c\" as main_menu_key", main_menu_key); + + /* enter_key */ + enter_key = MtxOrb_parse_keypad_setting (DriverName, "EnterKey", MTXORB_DEF_ENTER_KEY); + report (RPT_DEBUG, "MtxOrb: Using \"%c\" as enter_key", enter_key); + + /* escape_key */ + escape_key = MtxOrb_parse_keypad_setting (DriverName, "EscapeKey", MTXORB_DEF_ESCAPE_KEY); + report (RPT_DEBUG, "MtxOrb: Using \"%c\" as escape_key", escape_key); } /* End of config file parsing*/ @@ -1162,6 +1171,10 @@ in = INPUT_FORWARD_KEY; } else if (in==main_menu_key) { in = INPUT_MAIN_MENU_KEY; + } else if (in==enter_key) { + in = INPUT_ENTER_KEY; + } else if (in==escape_key) { + in = INPUT_ESCAPE_KEY; } /*TODO: add more translations here (anything flexible that can be done from LCDd.conf ...)*/ else { diff -dPNur lcdproc-0.4.5/server/drivers/MtxOrb.h lcdproc-0.4.5-new/server/drivers/MtxOrb.h --- lcdproc-0.4.5/server/drivers/MtxOrb.h 2002-02-21 01:08:49.000000000 +0400 +++ lcdproc-0.4.5-new/server/drivers/MtxOrb.h 2006-05-28 04:29:52.000000000 +0500 @@ -62,7 +62,8 @@ #define MTXORB_DEF_BACK_KEY MTXORB_KEY_LEFT #define MTXORB_DEF_FORWARD_KEY MTXORB_KEY_RIGHT #define MTXORB_DEF_MAIN_MENU_KEY MTXORB_KEY_DOWN - +#define MTXORB_DEF_ENTER_KEY 'L' +#define MTXORB_DEF_ESCAPE_KEY 'B' #endif diff -dPNur lcdproc-0.4.5/server/input.h lcdproc-0.4.5-new/server/input.h --- lcdproc-0.4.5/server/input.h 2002-04-08 23:34:13.000000000 +0500 +++ lcdproc-0.4.5-new/server/input.h 2006-05-28 04:21:41.000000000 +0500 @@ -21,10 +21,12 @@ * You should not change these values, as some drivers still return * A, B, C, D directly without using these defines! */ -#define INPUT_PAUSE_KEY 'A' -#define INPUT_BACK_KEY 'B' -#define INPUT_FORWARD_KEY 'C' -#define INPUT_MAIN_MENU_KEY 'D' +#define INPUT_ESCAPE_KEY 'U' +#define INPUT_ENTER_KEY 'V' +#define INPUT_PAUSE_KEY 'W' +#define INPUT_BACK_KEY 'X' +#define INPUT_FORWARD_KEY 'Y' +#define INPUT_MAIN_MENU_KEY 'Z' #define DEFAULT_FREEPAUSEKEY 0 #define DEFAULT_FREEBACKKEY 0 diff -dPNur lcdproc-0.4.5/server/menu.c lcdproc-0.4.5-new/server/menu.c --- lcdproc-0.4.5/server/menu.c 2002-04-11 00:31:23.000000000 +0500 +++ lcdproc-0.4.5-new/server/menu.c 2006-05-28 04:47:49.000000000 +0500 @@ -142,7 +142,7 @@ /* Handle the key according to the keybindings...*/ switch (key) { - case INPUT_MAIN_MENU_KEY: + case INPUT_ESCAPE_KEY: done = 1; break; case INPUT_BACK_KEY: @@ -159,7 +159,7 @@ if (menu[info.selected + 1].text) info.selected++; break; - case INPUT_PAUSE_KEY: + case INPUT_ENTER_KEY: switch (menu[info.selected].type) { case TYPE_MENU: status = do_menu (menu[info.selected].data);