Ticket #454: fix_ctrl_global.patch

File fix_ctrl_global.patch, 1.5 KB (added by devoidfury, 11 months ago)
  • src/globalhotkeys/eggaccelerators.c

    From afe87841d1149de2c28c5a7905fc74a865f53e13 Mon Sep 17 00:00:00 2001
    From: Thomas Hunkapiller <furydevoid@gmail.com>
    Date: Fri, 29 Jun 2012 15:21:40 -0500
    Subject: [PATCH] fix ignored ctrl key in global hotkeys
    
    ---
     src/globalhotkeys/eggaccelerators.c |   20 ++++++++++++++++++++
     1 file changed, 20 insertions(+)
    
    diff --git a/src/globalhotkeys/eggaccelerators.c b/src/globalhotkeys/eggaccelerators.c
    index 6f96411..f53eb4b 100644
    a b  
    129129} 
    130130 
    131131static inline gboolean 
     132is_new_control (const gchar *string) 
     133{ 
     134  return ((string[0] == '<') && 
     135          (string[1] == 'p' || string[1] == 'P') && 
     136          (string[2] == 'r' || string[2] == 'R') && 
     137          (string[3] == 'i' || string[3] == 'I') && 
     138          (string[4] == 'm' || string[4] == 'M') && 
     139          (string[5] == 'a' || string[5] == 'A') && 
     140          (string[6] == 'r' || string[6] == 'R') && 
     141          (string[7] == 'y' || string[7] == 'Y') && 
     142          (string[8] == '>')); 
     143} 
     144 
     145static inline gboolean 
    132146is_release (const gchar *string) 
    133147{ 
    134148  return ((string[0] == '<') && 
     
    250264              len -= 9; 
    251265              mods |= EGG_VIRTUAL_CONTROL_MASK; 
    252266            } 
     267          else if (len >= 9 && is_new_control (accelerator)) 
     268            { 
     269              accelerator += 9; 
     270              len -= 9; 
     271              mods |= EGG_VIRTUAL_CONTROL_MASK; 
     272            } 
    253273          else if (len >= 7 && is_shift (accelerator)) 
    254274            { 
    255275              accelerator += 7;