[SRU] Add XIM Support to Nux
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Nux |
Fix Released
|
High
|
Brandon Schaefer | ||
2.0 |
Fix Committed
|
High
|
Brandon Schaefer | ||
Unity |
Fix Released
|
High
|
Brandon Schaefer | ||
5.0 |
Fix Committed
|
Undecided
|
Unassigned | ||
nux (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned | ||
Quantal |
Won't Fix
|
Undecided
|
Unassigned | ||
Raring |
Won't Fix
|
Undecided
|
Unassigned | ||
unity (Ubuntu) |
Fix Released
|
Undecided
|
Brandon Schaefer | ||
Quantal |
Won't Fix
|
Undecided
|
Unassigned | ||
Raring |
Won't Fix
|
Undecided
|
Brandon Schaefer |
Bug Description
[Impact]
As 12.04 is an LTS, many users decide to stay with that version until the next LTS version is available. Many of those users require different input methods to comfortably input characters in their language. We do support IBus for some of the languages, but others are still using XIM as the input framework. Those users cannot input in their language using their standard input methods. This means using the Dash and HUD is much more troublesome or even impossible in normal cases.
We think that even though it is essentially a new feature, it can be thought that the lack of support for non-IBus additional input methods is a bug in a way.
It is a big change, but with proper testing, we would ensure that the addition does not introduce any new regressions.
This addition would make many MANY users happy, which can be seen at least by the number of affected people in LP: #983254.
Also, the change is needed by OEM. It is a big change, but it's crucial for CJK - Kyrlin has voiced the proposition to use fctix as the default input method, which _needs_ XIM support in Nux and Unity.
[Test Case]
1. Install fctix-pinyin
2. Run im-config and enable fctix as the default IM
3. Reboot your machine
4. Open the dash and input non-latin characters using fctix
-> Non latin characters (Chinese in this case) should appear on screen.
[Regression Potential]
In an impossible scenariu, broken IBus input or input in overall in Nux input fields.
The good thing about the XIM support is that it's rather isolated, so potential breakage of the XIM code won't impact normal Nux workflow. Just XIM input might not work.
The author of the code, Brandon, also mentions that new regression potential is low as the XIM code is not being used by default. As XIM is not the default, when IBus is present - without explicitly setting XIM in im-config, the XIM parts are not even accessed.
[Other Info]
The same functionality is already available in the newer Unity releases.
Original description:
Right now the only input method (IM) that works with Unity/Nux is IBus. This means anyone who uses a different IM would have to switch to IBus in order to type in their language.
This is something that needs to be fixed and will make Unity/Nux friendlier to those who use different IMs. If you do not use an IM then this will not affect you.
XIM was the very first IM framework for the X window system, which means most IMs are supported by it.
A List of IMs that will be supported by this branch (There could be more):
http://
All of those under XIM will now work in Unity and Nux with this branch.
Related branches
- Andrea Azzarone (community): Approve
- PS Jenkins bot: Pending (continuous-integration) requested
- Łukasz Zemczak: Pending requested
- Jay Taoko: Pending requested
-
Diff: 1357 lines (+1051/-12)16 files modifiedNux/TextEntry.cpp (+2/-0)
NuxGraphics/GraphicsDisplayX11.cpp (+45/-2)
NuxGraphics/GraphicsDisplayX11.h (+7/-1)
NuxGraphics/Makefile.am (+7/-4)
NuxGraphics/XICClient.cpp (+112/-0)
NuxGraphics/XICClient.h (+60/-0)
NuxGraphics/XIMController.cpp (+146/-0)
NuxGraphics/XIMController.h (+62/-0)
NuxGraphics/XInputWindow.cpp (+4/-1)
NuxGraphics/XInputWindow.h (+1/-0)
examples/Makefile.am (+1/-1)
tests/Makefile.am (+11/-2)
tests/nux_automated_test_framework.cpp (+89/-1)
tests/nux_automated_test_framework.h (+2/-0)
tests/xim-test-commands.txt (+52/-0)
tests/xtest-text-entry-xim.cpp (+450/-0)
- Thomi Richards (community): Approve (quality)
- Christopher Lee (community): Approve
-
Diff: 78 lines (+72/-0)1 file modifiedtests/autopilot/unity/tests/xim/test_gcin.py (+72/-0)
- Andrea Azzarone (community): Approve
-
Diff: 733 lines (+494/-19)11 files modifiedNux/TextEntry.cpp (+2/-0)
NuxGraphics/Events.cpp (+5/-4)
NuxGraphics/Events.h (+5/-1)
NuxGraphics/GraphicsDisplayX11.cpp (+87/-9)
NuxGraphics/GraphicsDisplayX11.h (+4/-1)
NuxGraphics/Makefile.am (+7/-3)
NuxGraphics/XICClient.cpp (+112/-0)
NuxGraphics/XICClient.h (+60/-0)
NuxGraphics/XIMController.cpp (+146/-0)
NuxGraphics/XIMController.h (+62/-0)
NuxGraphics/XInputWindow.cpp (+4/-1)
- Andrea Azzarone (community): Approve
-
Diff: 163 lines (+45/-12)6 files modifiedplugins/unityshell/src/DashController.cpp (+17/-3)
plugins/unityshell/src/DashController.h (+3/-0)
plugins/unityshell/src/HudController.cpp (+12/-3)
plugins/unityshell/src/HudController.h (+2/-0)
plugins/unityshell/src/unity-util-accessible.cpp (+2/-2)
plugins/unityshell/src/unityshell.cpp (+9/-4)
affects: | compiz (Ubuntu) → nux (Ubuntu) |
description: | updated |
Changed in nux (Ubuntu): | |
status: | New → Confirmed |
Changed in unity: | |
status: | New → Confirmed |
Changed in nux: | |
status: | New → In Progress |
Changed in unity: | |
status: | Confirmed → In Progress |
Changed in nux: | |
importance: | Undecided → High |
Changed in unity: | |
importance: | Undecided → High |
Changed in nux: | |
assignee: | nobody → Brandon Schaefer (brandontschaefer) |
Changed in unity: | |
assignee: | nobody → Brandon Schaefer (brandontschaefer) |
Changed in unity: | |
status: | In Progress → Fix Committed |
milestone: | none → 6.6 |
Changed in nux (Ubuntu): | |
milestone: | none → later |
Changed in unity (Ubuntu): | |
milestone: | none → later |
Changed in unity: | |
milestone: | 6.6 → 7.0 |
no longer affects: | unity/6.0 |
Changed in unity: | |
milestone: | 7.0 → 6.6 |
Changed in unity: | |
status: | Fix Committed → Fix Released |
Changed in unity: | |
milestone: | 6.6 → 7.0.0 |
Changed in nux: | |
status: | In Progress → Fix Committed |
Changed in unity: | |
status: | Confirmed → Fix Committed |
Changed in unity (Ubuntu Raring): | |
status: | New → Fix Committed |
assignee: | nobody → Brandon Schaefer (brandontschaefer) |
Changed in nux: | |
milestone: | none → 4.0 |
summary: |
- [FFe] Add XIM Support to Nux + Add XIM Support to Nux |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
summary: |
- Add XIM Support to Nux + [SRU] Add XIM Support to Nux |
Changed in unity (Ubuntu): | |
status: | Fix Committed → Fix Released |
hum, is it wise to commit features before having the FFE approved? what will you do if the exception is not approved? block everything else in unity?