Holding ISO_Level5_Shift is wrongly interpreted as normal shift.
I upgraded xfce4-terminal (1.0.4-1 -> 1.1.0-1) and noticed two problems. I'm using a special keyboard layout that emulates "arrow up" when I press Alt Gr+E and "page up" when I press Alt Gr+Q. I would normally use this to go back in the shell history or to scroll the terminal up or in vim move up in the open file. After the update this broke. Alt Gr+E scrolls the terminal up one line and and in vim Alt Gr+Q does nothing. Note that using the real Page Up and Arrow Up do work as always.
There is a terminal shortcut for scrolling one line up -- set to Shift+Arrow Up -- and for scrolling one page up -- Shift+Page Up. I believe xfce4-terminal misrecognizes the simulated Page Up (via Alt Gr+Q) as Shift+Page Up and causes some different handling than a real Page Up, thus preventing vim from seeing a Page Up key press, and something similar happening with Alt Gr+E, preventing bash from seeing the Arrow Up and wrongly scrolling up the terminal one line. When I remove these shortcuts, the normal behaviour returns.
Using xev I got for Arrow Up:
KeyPress event, serial 37, synthetic NO, window 0x4200001,
root 0x53d, subw 0x0, time 345901972, (905,396), root:(1207,670),
state 0x0, keycode 111 (keysym 0xff52, Up), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
Shift+Arrow Up:
KeyPress event, serial 37, synthetic NO, window 0x4000001,
root 0x53d, subw 0x0, time 343845960, (308,128), root:(594,481),
state 0x1, keycode 111 (keysym 0xff52, Up), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
and for Alt Gr+E
KeyPress event, serial 37, synthetic NO, window 0x4000001,
root 0x53d, subw 0x0, time 343844870, (308,128), root:(594,481),
state 0x20, keycode 26 (keysym 0xff52, Up), same_screen YES,
XKeysymToKeycode returns keycode: 111
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
For Page Up
KeyPress event, serial 37, synthetic NO, window 0x4200001,
root 0x53d, subw 0x0, time 345666785, (531,62), root:(833,336),
state 0x0, keycode 112 (keysym 0xff55, Prior), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
Shift+Page Up
KeyRelease event, serial 37, synthetic NO, window 0x4200001,
root 0x53d, subw 0x0, time 345941572, (520,199), root:(822,473),
state 0x1, keycode 112 (keysym 0xff55, Prior), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
and for Alt Gr+Q (including the Alt Gr key press event)
KeyPress event, serial 37, synthetic NO, window 0x4200001,
root 0x53d, subw 0x0, time 345772818, (658,258), root:(960,532),
state 0x0, keycode 108 (keysym 0xfe11, ISO_Level5_Shift), same_screen YES,
XKeysymToKeycode returns keycode: 94
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 37, synthetic NO, window 0x4200001,
root 0x53d, subw 0x0, time 345773298, (658,258), root:(960,532),
state 0x20, keycode 24 (keysym 0xff55, Prior), same_screen YES,
XKeysymToKeycode returns keycode: 112
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
My knowledge is limited, but I'd guess xfce4-terminal interpretes the state 0x20 as 0x1 and interpreting it as if shift is being hold.