Add support for input method candidate windows
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
New
|
Undecided
|
Unassigned | ||
mir (Ubuntu) |
New
|
Undecided
|
Unassigned | ||
qtmir (Ubuntu) |
Confirmed
|
Undecided
|
Daniel d'Andrada |
Bug Description
I'm porting fcitx-qimpanel to Qt 5, which provides the widget for displaying a list of candidates for CJK input. But the Qt 5 QPA doesn't currently support the following features that it needs:
- QQuickWidget
- setting window masks
- propagateSizeHi
and other features yet-to-
=== excerpt of stdout from running fcitx-qimpanel under Mir ===
QSocketNotifier: Can only be used with threads started with QThread
QSocketNotifier: Can only be used with threads started with QThread
QSocketNotifier: Can only be used with threads started with QThread
QSocketNotifier: Can only be used with threads started with QThread
QSocketNotifier: Can only be used with threads started with QThread
QObject:
QObject:
reply.value(): ":1.8"
reply.value(): ":1.8"
fcitxIsNotRunni
mIsHorizontal: true
mSkinName: "ubuntukylin-dark1"
MainController:
QQuickWidget is not supported on this platform.
/usr/share/
SkinType is default
QSystemTrayIcon
UbuntuWindow - regular geometry
UbuntuWindow - regular geometry
UbuntuWindow - regular geometry
This plugin does not support setting window masks
This plugin does not support propagateSizeHi
This plugin does not support propagateSizeHi
QUbuntuWindow:
UbuntuWindow:
This plugin does not support setting window masks
QUbuntuWindow:
UbuntuWindow:
UbuntuWindow - regular geometry
summary: |
- Add QPA support for input method candidate windows + Add support for input method candidate windows |
Changed in qtmir (Ubuntu): | |
status: | New → Confirmed |
Changed in qtmir: | |
status: | New → Confirmed |
Changed in qtmir (Ubuntu): | |
assignee: | nobody → Daniel d'Andrada (dandrader) |
Changed in qtmir: | |
assignee: | nobody → Daniel d'Andrada (dandrader) |
no longer affects: | qtmir |
Hi William,
it is my understanding that support for input methods in Mir currently needs a lot of work. The Mir team needs to identify what functionality that libXimd (the IMdkit library used by fcitx and others) to implement and how.
Here would be my initial guess at the high-level requirements for Mir/QtMir:
1. positioning the IM surface relative to the keyboard caret, while being aware of screen borders (i.e. does not go off screen)
2. surface resizes & repositions itself at will
3. concept of "preedit" needed, where as user is constructing a word, the application draws the text underlined, but doesn't consider it committed
4. input event forwarding (from IM to client)
5. notifications of client behaviour - focus in/out, client open/close, surface move/resize....
But I'd need an expert on IM technologies to make this list more precise.