repo: rxvt-unicode-sixel
action: commit
revision: 
path_from: 
revision_from: 0463c53dda091c9088bc870fc6b985c68c547ed4:
path_to: 
revision_to: 
git.thebackupbox.net
rxvt-unicode-sixel
git clone git://git.thebackupbox.net/rxvt-unicode-sixel
commit 0463c53dda091c9088bc870fc6b985c68c547ed4
Author: Emanuele Giaquinta 
Date:   Wed Jul 16 14:29:23 2014 +0000

    Fix sequence generation for Shift + F1 - F10.

diff --git a/src/command.C b/src/command.C
index d35961e4ae925651981ff2377ed1b1710785d641..
index ..ae11f2fb380052b361cfad4efdcd8fe3f26a0e47 100644
--- a/src/command.C
+++ b/src/command.C
@@ -498,6 +498,15 @@ rxvt_term::key_press (XKeyEvent &ev)

   if (valid_keysym)
     {
+      KeySym orig_keysym = keysym;
+
+      /* Shift + F1 - F10 generates F11 - F20 */
+      if (shft && keysym >= XK_F1 && keysym <= XK_F10)
+        {
+          keysym += (XK_F11 - XK_F1);
+          shft = 0;	/* turn off Shift */
+        }
+
       if (keysym >= 0xFF00 && keysym <= 0xFFFF)
         {
           bool kp = priv_modes & PrivMode_aplKP ? !shft : shft;
@@ -687,6 +696,8 @@ rxvt_term::key_press (XKeyEvent &ev)
 #endif
           /* nil */ ;
         }
+
+      keysym = orig_keysym;
     }

   /* escape prefix */
@@ -772,13 +783,7 @@ rxvt_term::key_press (XKeyEvent &ev)

       if (shft)
         {
-          /* Shift + F1 - F10 generates F11 - F20 */
-          if (keysym >= XK_F1 && keysym <= XK_F10)
-            {
-              keysym += (XK_F11 - XK_F1);
-              shft = 0;	/* turn off Shift */
-            }
-          else if (!ctrl && !meta && (priv_modes & PrivMode_ShiftKeys))
+          if (!ctrl && !meta && (priv_modes & PrivMode_ShiftKeys))
             {
               switch (keysym)
                 {

-----END OF PAGE-----