* Alan Schmitt ([EMAIL PROTECTED]) wrote: > > Now that 16.7.1 is out, is there a chance that this patch gets > integrated ?
Sorry to answer my own message, but I realized it would make Kwo's life easier if I provided a new patch against the current (anonymous) cvs. Here it is attached. Alan Schmitt -- The hacker: someone who figured things out and made something cool happen. .O. ..O OOO
Index: E.h =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v retrieving revision 1.323 diff -u -p -r1.323 E.h --- E.h 20 Aug 2004 21:13:55 -0000 1.323 +++ E.h 25 Aug 2004 14:45:14 -0000 @@ -1104,6 +1104,10 @@ typedef struct } hints; struct { + KeySym left, right, up, down, escape, ret; + } menukeys; + struct + { char enable; char zoom; char title; Index: conf.h =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/conf.h,v retrieving revision 1.34 diff -u -p -r1.34 conf.h --- conf.h 3 Jul 2004 00:58:19 -0000 1.34 +++ conf.h 25 Aug 2004 14:45:14 -0000 @@ -155,6 +155,8 @@ #define CONTROL_ST_PAGER 1383 #define CONTROL_ST_WARPLIST 1384 +#define CONTROL_MENU_NAVIGATION_KEYS 1390 + #define ICLASS_NAME 350 #define ICLASS_NORMAL 351 #define ICLASS_CLICKED 352 Index: config.c =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/config.c,v retrieving revision 1.113 diff -u -p -r1.113 config.c --- config.c 3 Aug 2004 02:43:50 -0000 1.113 +++ config.c 25 Aug 2004 14:45:14 -0000 @@ -648,6 +648,7 @@ Config_Control(FILE * ConfigFile) */ char s[FILEPATH_LEN_MAX]; + char s2[FILEPATH_LEN_MAX]; int i1, i2, i3, fields; float f1; @@ -984,6 +985,30 @@ Config_Control(FILE * ConfigFile) case CONTROL_DOCKAPP_SUPPORT: Conf.dockapp_support = i2; break; + case CONTROL_MENU_NAVIGATION_KEYS: + sscanf(s, "%*i %*i %s", s2); + switch(i2) + { + case 0: + Conf.menukeys.left = XStringToKeysym(s2); + break; + case 1: + Conf.menukeys.right = XStringToKeysym(s2); + break; + case 2: + Conf.menukeys.up = XStringToKeysym(s2); + break; + case 3: + Conf.menukeys.down = XStringToKeysym(s2); + break; + case 4: + Conf.menukeys.escape = XStringToKeysym(s2); + break; + case 5: + Conf.menukeys.ret = XStringToKeysym(s2); + break; + } + break; default: RecoverUserConfig(); Alert(_("Warning: unable to determine what to do with\n" @@ -3918,6 +3943,12 @@ SaveUserControlConfig(FILE * autosavefil fprintf(autosavefile, "1383 %i\n", (int)Conf.st_trans.pager); fprintf(autosavefile, "1384 %i\n", (int)Conf.st_trans.warplist); #endif + fprintf(autosavefile, "1390 0 %s\n", XKeysymToString(Conf.menukeys.left)); + fprintf(autosavefile, "1390 1 %s\n", XKeysymToString(Conf.menukeys.right)); + fprintf(autosavefile, "1390 2 %s\n", XKeysymToString(Conf.menukeys.up)); + fprintf(autosavefile, "1390 3 %s\n", XKeysymToString(Conf.menukeys.down)); + fprintf(autosavefile, "1390 4 %s\n", XKeysymToString(Conf.menukeys.escape)); + fprintf(autosavefile, "1390 5 %s\n", XKeysymToString(Conf.menukeys.ret)); #ifdef HAS_XINERAMA fprintf(autosavefile, "2013 %i\n", (int)Conf.extra_head); #endif Index: menus.c =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/menus.c,v retrieving revision 1.152 diff -u -p -r1.152 menus.c --- menus.c 13 Aug 2004 20:41:25 -0000 1.152 +++ menus.c 25 Aug 2004 14:45:14 -0000 @@ -2196,6 +2196,28 @@ MenuFindContextEwin(Menu * m) return FindEwinSpawningMenu(m); } +KeySym +MenuKeyPressConversion(KeySym key) +{ + if (key == Conf.menukeys.left) + return XK_Left; + if (key == Conf.menukeys.right) + return XK_Right; + if (key == Conf.menukeys.up) + return XK_Up; + if (key == Conf.menukeys.down) + return XK_Down; + if (key == Conf.menukeys.escape) + return XK_Escape; + if (key == Conf.menukeys.ret) + return XK_Return; + + /* The key does not correspond to any set, use the default behavior + * associated to the key */ + return key; +} + + int MenusEventKeyPress(XEvent * ev) { @@ -2219,7 +2241,7 @@ MenusEventKeyPress(XEvent * ev) /* NB! m != NULL */ key = XLookupKeysym(&ev->xkey, 0); - switch (key) + switch (MenuKeyPressConversion(key)) { case XK_Escape: MenusHide(); Index: setup.c =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/setup.c,v retrieving revision 1.139 diff -u -p -r1.139 setup.c --- setup.c 25 Jul 2004 09:34:43 -0000 1.139 +++ setup.c 25 Aug 2004 14:45:14 -0000 @@ -456,6 +456,13 @@ SetupX(void) Conf.st_trans.warplist = ICLASS_ATTR_BG; #endif + Conf.menukeys.left = XK_Left; + Conf.menukeys.right = XK_Right; + Conf.menukeys.up = XK_Up; + Conf.menukeys.down = XK_Down; + Conf.menukeys.escape = XK_Escape; + Conf.menukeys.ret = XK_Return; + ScreenInit(); MenusInit();
pgpF6OjhUrMQu.pgp
Description: PGP signature