2 * Copyright (C) 2014 Canonical Ltd.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 3.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18import QtMir.Application 0.1
19import Lomiri.Components 0.1
21// TODO: try to share this code with that from the lomiri shell
27 target: SurfaceManager
29 if (surface.type == MirSurfaceItem.InputMethod) {
30 inputMethodRoot.surface = surface;
35 if (inputMethodRoot.surface == surface) {
36 inputMethodRoot.surface = null;
37 surface.parent = null;
39 if (!surface.parent) {
40 // there's no one displaying it. delete it right away
46 property var surface: null
48 property int transitionDuration: LomiriAnimation.FastDuration
51 if (surface && surface.state != MirSurfaceItem.Minimized) {
72 // half-way down because the vkb occupies only the lower half of the surface
73 // TODO: consider keyboard rotation
74 y: inputMethodRoot.parent.height / 2.0
82 PropertyAction { property: "visible"; value: true }
83 LomiriNumberAnimation { property: "y"; duration: transitionDuration }
89 ignoreUnknownSignals: true // don't wanna spam the log when surface is null
91 if (state == MirSurfaceItem.Minimized) {
92 inputMethodRoot.hide();
93 } else if (state == MirSurfaceItem.Maximized) {
94 inputMethodRoot.show();
101 surface.parent = inputMethodRoot;
102 surface.anchors.fill = inputMethodRoot;
106 Component.onDestruction: {
108 surface.parent = null;