← 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
       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
https://bugs.launchpad.net/bugs/1347735

Title:
  Lockscreen capslock detection doesn't work well with remapped
  capslocks

Status in Unity:
  Fix Released
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:
  [Impact]
  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]
  None

  
  -----------------

  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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/unity/+bug/1347735/+subscriptions