From 9c7309272f7b8f97c2077c5a5cb3c8f69ab0f614 Mon Sep 17 00:00:00 2001 From: Ram Kromberg Date: Wed, 5 Oct 2016 09:54:40 +0300 Subject: [PATCH] mlterm: fix mouse keybinding with numlock --- pkgs/applications/misc/mlterm/default.nix | 4 ++- .../misc/mlterm/x_shortcut.c.patch | 26 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 pkgs/applications/misc/mlterm/x_shortcut.c.patch diff --git a/pkgs/applications/misc/mlterm/default.nix b/pkgs/applications/misc/mlterm/default.nix index 9fa112375c52..9da087d49692 100644 --- a/pkgs/applications/misc/mlterm/default.nix +++ b/pkgs/applications/misc/mlterm/default.nix @@ -20,6 +20,8 @@ stdenv.mkDerivation rec { harfbuzz fribidi m17n_lib openssl libssh2 ]; + patches = [ ./x_shortcut.c.patch ]; #fixes numlock in 3.7.2. should be safe to remove by 3.7.3 since it's already in the trunk: https://bitbucket.org/arakiken/mlterm/commits/4820d42c7abfe1760a5ea35492c83be469c642b3 + #bad configure.ac and Makefile.in everywhere preConfigure = '' sed -ie 's;-L/usr/local/lib -R/usr/local/lib;;g' \ @@ -91,7 +93,7 @@ stdenv.mkDerivation rec { }; meta = with stdenv.lib; { - homepage = https://sourceforge.net/projects/mlterm/; + homepage = http://mlterm.sourceforge.net/; license = licenses.bsd2; maintainers = with maintainers; [ vrthra ramkromberg ]; platforms = with platforms; linux; diff --git a/pkgs/applications/misc/mlterm/x_shortcut.c.patch b/pkgs/applications/misc/mlterm/x_shortcut.c.patch new file mode 100644 index 000000000000..f0f929b79650 --- /dev/null +++ b/pkgs/applications/misc/mlterm/x_shortcut.c.patch @@ -0,0 +1,26 @@ +--- mlterm-3.7.2/xwindow/x_shortcut.c ++++ mlterm-3.7.2/xwindow/x_shortcut.c +@@ -292,6 +292,11 @@ + /* ingoring except these masks */ + state &= (ModMask|ControlMask|ShiftMask|CommandMask|button_mask) ; + ++ if( state & button_mask) ++ { ++ state &= ~Mod2Mask ; /* XXX NumLock */ ++ } ++ + if( shortcut->map[func].ksym == ksym && + shortcut->map[func].state == + ( state | +@@ -318,6 +323,11 @@ + /* ingoring except these masks */ + state &= (ModMask|ControlMask|ShiftMask|CommandMask|button_mask) ; + ++ if( state & button_mask) ++ { ++ state &= ~Mod2Mask ; /* XXX NumLock */ ++ } ++ + for( count = 0 ; count < shortcut->str_map_size ; count ++) + { + if( shortcut->str_map[count].ksym == ksym &&