File mlterm-numlock.diff of Package mlterm.import4819

Description: x_window.c: XK_Num_Lock is added to default_keysyms in
 x_window_get_mod_ignore_mask() to fix SF Bug #3072833 which was caused by
 2010-06-03 fix.  (Thanks to Andreas Metzler)
Origin: http://mlterm.hg.sourceforge.net/hgweb/mlterm/mlterm/rev/b9156f7459b3
Bug: http://sourceforge.net/tracker/?func=detail&aid=3072833&group_id=40891&atid=429201
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=597380
Author: Araki Ken  <arakiken@users.sf.net>

--- a/xwindow/x_screen.c
+++ b/xwindow/x_screen.c
@@ -2056,7 +2056,7 @@
 		is_app_cursor_keys = ml_term_is_app_cursor_keys( screen->term) ;
 		is_app_keypad = ml_term_is_app_keypad( screen->term) ;
 
-		if ( event->state)
+		if ( event->state)	/* Check unmasked (raw) state of event. */
 		{
 			int  is_shift ;
 			int  is_meta ;
@@ -2209,7 +2209,7 @@
 				}
 				else
 				{
-					return ;
+					goto  no_keypad ;
 				}
 				
 				goto  write_buf ;
@@ -2238,7 +2238,8 @@
 						sizeof(table) / sizeof(table[0])) ;
 			}
 		}
-		
+
+no_keypad:
 		if( ( buf = x_shortcut_str( screen->shortcut , ksym , masked_state)))
 		{
 			if( strncmp( buf , "proto:" , 6) == 0)
@@ -2583,6 +2584,7 @@
 
 			buf = buf_escseq ;
 		}
+		/* Check unmasked (raw) state of event. */
 		else if( screen->mod_meta_mask & event->state)
 		{
 			if( screen->mod_meta_mode == MOD_META_OUTPUT_ESC)
--- a/xwindow/x_window.c
+++ b/xwindow/x_window.c
@@ -3347,8 +3347,8 @@
 	int  count ;
 	u_int  ignore ;
 	u_int  masks[] = { Mod1Mask , Mod2Mask , Mod3Mask , Mod4Mask , Mod5Mask } ;
-	KeySym default_keysyms[] = { XK_Scroll_Lock, XK_ISO_Level3_Lock,
-				     NoSymbol} ;
+	KeySym default_keysyms[] = { XK_Num_Lock , XK_Scroll_Lock , XK_ISO_Level3_Lock ,
+				     NoSymbol } ;
 
 	if( !keysyms)
 	{
openSUSE Build Service is sponsored by