(categorise, cut toplevel heading) |
(→Implementation details) |
||
| Line 30: | Line 30: | ||
==== Implementation details ==== | ==== Implementation details ==== | ||
| - | * Instantiate MIMPluginManager inside a Wayland compositor | + | The details here assume that QtQuick 2's QML based compositor would be implemented. And here, we can't use QtQuick 1.0 and possibly also the QGraphicsView based plugins. |
| - | * | + | |
| + | * Instantiate MIMPluginManager inside a Wayland compositor by using a normal QML plugin infrastructure. So here, the MIMPluginManager needs to be possible to be recompiled as a QDeclarativeExtensionPlugin. | ||
| + | * In the compositor's main QML file, Maliit needs to be included, eg. something like: | ||
| + | <code> | ||
| + | import QtQuick 2.0 | ||
| + | import Maliit // Import Maliit's plugin manager | ||
| + | |||
| + | ... | ||
| + | InputMethod { | ||
| + | id: inputMethod | ||
| + | anchors { | ||
| + | fill: parent | ||
| + | } | ||
| + | } | ||
| + | ... | ||
| + | |||
| + | </code> | ||
| + | * The QML needs to be crafted so the InputMethod needs to be on top of everything which needs input method. | ||
| + | * MIMPluginManager would still need to be responsible to insert the plugin's UI into the scene by just reparenting the plugin's UI into the <tt>inputMethod</tt> object there. | ||
This approach would be feasible for multiprocess Lighthouse applications setup. | This approach would be feasible for multiprocess Lighthouse applications setup. | ||
At the moment, the X11 platform is the only platform supported by the Input Method. This page describes the approaches that can be taken to support non-x11 platforms. When we are talking about non-X11 platforms the following feature may be affected:
The ideas in this page basically built on using Wayland as the display server.
Contents |
For the host of the input method, basically there are two approaches that can be done, depending on the requirements of the system that we want to support, and we want to support both approach and can be easily switch between those.
This approach will bring the input method in the same process as the application. The memory consumed by input method is shared with the application. It also affects the startup time of the application.
This approach would be feasible for these use cases:
When used in-process, even though if the platform supports GLib D-Bus API, there is no point of having the connection using D-Bus API. Here the MInputContext may need to be modified to do direct call to the input method plugin.
This approach will still need the presence of compositor or be part of the compositor.
The details here assume that QtQuick 2's QML based compositor would be implemented. And here, we can't use QtQuick 1.0 and possibly also the QGraphicsView based plugins.
import QtQuick 2.0
import Maliit // Import Maliit's plugin manager
... InputMethod {
id: inputMethod
anchors {
fill: parent
}
} ...
This approach would be feasible for multiprocess Lighthouse applications setup.
Internally Wayland is still using xkb, but having a dedicated interface to manage the hardware keyboard would make sense.