Password prompt is shown repeatedly after properly entering the password using pinyin input method
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Network Menu |
New
|
Undecided
|
Unassigned | ||
The Savilerow project |
New
|
Undecided
|
Unassigned | ||
ubuntu-keyboard |
New
|
Undecided
|
Michael Sheldon |
Bug Description
Image: devel-proposed 52
Summary:
When trying to connect to a protected network using pinyin input method, the snap decision keeps coming back as if the password were entered incorrectly, even if it has not. Switching to english keyboard makes this work as expected.
ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: indicator-network 1:0.5.1+
ProcVersionSign
Uname: Linux 3.13.0-27-generic x86_64
NonfreeKernelMo
ApportVersion: 2.14.1-0ubuntu3.2
Architecture: amd64
CrashDB: indicator_network
CurrentDesktop: Unity
Date: Wed May 28 18:57:02 2014
InstallationDate: Installed on 2013-04-26 (397 days ago)
InstallationMedia: Ubuntu 13.04 "Raring Ringtail" - Release amd64 (20130424)
SourcePackage: indicator-network
ThirdParty: True
UpgradeStatus: Upgraded to trusty on 2013-11-23 (186 days ago)
Changed in ubuntu-keyboard: | |
assignee: | nobody → Michael Sheldon (michael-sheldon) |
So the underlying problem here is that words in preedit don't get committed when buttons are pressed unless the app explicitly calls Qt.inputMethod. commit( ). This wouldn't be noticed with other keyboard layouts as they don't use their predictive modes in the wifi password prompt, however the pinyin keyboard always uses this mode as it's the only method by which pinyin characters can be entered.
I'm not sure this can be reliably solved in the keyboard. Handling the committing in the keyboard on focus changes seems problematic, since often the text field might be getting processed or destroyed by something the button press is doing simultaneously, so the button really needs to explicitly ask for the text to be committed before it does anything else.
The most general solution would be for Qt.inputMethod. commit( ) to be called by default by AbstractButton, this requires some more discussion with the SDK team though; I've opened the following bug to track the state of this: https:/ /bugs.launchpad .net/ubuntu- ui-toolkit/ +bug/1324955
In the mean time any apps encountering this can fix the issue themselves by running "Qt.inputMethod .commit( )" in their own onPressed methods.