Comment 0 for bug 1347735

Revision history for this message
Margarita Manterola (marga-9) wrote :

Hi,

Version: 7.2.2+14.04.20140714-0ubuntu1 (trusty)

Some users like to remap the way the activate capslock. For example, using gnome-tweak-tool it's possible to set the CapsLock key to behave as an extra Ctrl, or an extra Alt (or several other extras) and then set "Both shifts together toggle CapsLock".

This works perfectly well inside Unity, the hardware keyboard led indicator shows up, etc. However, the lockscreen detector doesn't correctly warn or not warn when this setup is used.

* If the lockscreen was activated with capslock on, then the double-shift makes capslock go away, but not the warning.
* If the lockscreen was activated with capslock off, then the double-shift makes capslock on, but no warning shows up.

I believe the problem is in this piece of code in unity-shared/TextInput.cpp:

void TextInput::OnKeyUp(unsigned keysym,
                        unsigned long keycode,
                        unsigned long state)
{
  if (!caps_lock_on && keysym == NUX_VK_CAPITAL)
    caps_lock_on = true;
  else if (caps_lock_on && keysym == NUX_VK_CAPITAL)
    caps_lock_on = false;
}

This is checking for specific key, instead of the fact that CapsLock was activated or not.