Add support for input method candidate windows
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| | Mir |
New
|
Undecided
|
Unassigned | |
| | mir (Ubuntu) |
Undecided
|
Unassigned | ||
| | qtmir (Ubuntu) |
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
| Gerry Boland (gerboland) wrote : | #1 |
| 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 |
| Daniel d'Andrada (dandrader) wrote : | #2 |
Needs bug 1597031
| Changed in qtmir (Ubuntu): | |
| assignee: | nobody → Daniel d'Andrada (dandrader) |
| Changed in qtmir: | |
| assignee: | nobody → Daniel d'Andrada (dandrader) |
| Daniel d'Andrada (dandrader) wrote : | #3 |
Also needs support for these window flags:
- Qt::Tool
- Qt::WindowStays
- Qt::WindowDoesN
- Qt::FramelessWi
| Daniel d'Andrada (dandrader) wrote : | #4 |
Also needs QDesktopWidget support.
| Daniel d'Andrada (dandrader) wrote : | #5 |
fcitx framework needs QWindow to know its position on the screen.
ie: things like QPlatformWindow
fcitx-qimpanel needs to be able to set the position of its top-level QWindow on the screen.
Denying such things (as per mir design) obsoletes a sizable chunk of the ui part of fcitx framework. It ensures a rewrite/refactoring of most of fcitx-qimpanel code.
| tags: | added: desktop-trello-import |
| tags: | removed: desktop-trello-import |
| no longer affects: | qtmir |
| Michał Sawicz (saviq) wrote : | #7 |
Syncing task from Mir.


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.