Subject: FVWM: menu patch

From: Anton Kazennikov <[email-masked]>
Date: Mon, 29 Dec 2003 10:05:59 +0300

Hello,

I made a little patch, may be it will be useful to somebody. 
The keys on my keypad generates 
KP_{Home, Up,Prior,Left,Begin,Right,End,Down,Next} when
Numlock is swiched off. So the keypad can't be used to navigate
through menus. The patch adds bindings to KP_xxx mentioned above.

-- 
wbr, Anton Kazennikov

*** fvwm/menus.orig	Mon Dec 29 00:47:18 2003
--- fvwm/menus.c	Mon Dec 29 00:51:38 2003
***************
*** 919,924 ****
--- 919,925 ----
  		break;
  
  	case XK_Insert:
+ 	case XK_KP_Insert:
  	case XK_KP_0:
  		/* move to last entry of menu ('More...' if this exists) and
  		 * try to enter the menu.  Otherwise try to enter the current
***************
*** 929,934 ****
--- 930,936 ----
  
  	case XK_Left:
+ 	case XK_KP_Left:
  	case XK_KP_4:
  	case XK_h: /* vi left */
  		/* leave or enter a submenu */
  		saction = (MST_USE_LEFT_SUBMENUS(mr)) ? SA_ENTER : SA_LEAVE;
***************
*** 936,941 ****
--- 938,944 ----
  
  	case XK_Right:
+ 	case XK_KP_Right:
  	case XK_KP_6:
  	case XK_l: /* vi right */
  		/* enter or leave a submenu */
  		saction = (MST_USE_LEFT_SUBMENUS(mr)) ? SA_LEAVE : SA_ENTER;
***************
*** 952,963 ****
--- 955,968 ----
  		break;
  
  	case XK_Page_Up:
+ 	case XK_KP_Prior:
  	case XK_KP_9:
  		items_to_move = -5;
  		saction = SA_MOVE_ITEMS;
  		break;
  
  	case XK_Page_Down:
+ 	case XK_KP_Next:
  	case XK_KP_3:
  		items_to_move = 5;
  		saction = SA_MOVE_ITEMS;
***************
*** 965,970 ****
--- 970,976 ----
  
  	case XK_Up:
+ 	case XK_KP_Up:
  	case XK_KP_8:
  	case XK_k: /* vi up */
  	case XK_p: /* prior */
  		if (fShiftedKey && !fControlKey && !fMetaKey)
***************
*** 986,991 ****
--- 992,998 ----
  
  	case XK_Down:
+ 	case XK_KP_Down:
  	case XK_KP_2:
  	case XK_j: /* vi down */
  	case XK_n: /* next */
  		if (fShiftedKey && !fControlKey && !fMetaKey)
***************
*** 1037,1047 ****
--- 1044,1056 ----
  		break;
  
  	case XK_Home:
+ 	case XK_KP_Home:
  	case XK_KP_7:
  		saction = SA_FIRST;
  		break;
  
  	case XK_End:
+ 	case XK_KP_End:
  	case XK_KP_1:
  		saction = SA_LAST;
  		break;