← Back to team overview

desktop-packages team mailing list archive

[Bug 1347735] Re: Lockscreen capslock detection doesn't work well with remapped capslocks


** Changed in: unity/7.2
       Status: Fix Committed => Fix Released

You received this bug notification because you are a member of Desktop
Packages, which is subscribed to unity in Ubuntu.
Matching subscriptions: dp-unity

  Lockscreen capslock detection doesn't work well with remapped

Status in Unity:
  Fix Committed
Status in Unity 7.2 series:
  Fix Released
Status in “unity” package in Ubuntu:
  Fix Released
Status in “unity” source package in Trusty:
  Fix Released

Bug description:
  Remapped keys to activate the caps-lock are not correctly detected by the unity lockscreen

  [Test case]
  1. Configure the keyboard so that "Both shifts together toggles CapsLock"
  2. Lock the screen using Super+L or menus
  3. Press both shifts together to turn the capslock on
  4. The lockscreen input field should show a warning
  5. Press the shifts again, and the warning should be hidden

  [Regression potential]


  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-

  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.

To manage notifications about this bug go to: