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)
{