diff options
Diffstat (limited to 'components/VirtualKeyboard.qml')
-rw-r--r-- | components/VirtualKeyboard.qml | 56 |
1 files changed, 55 insertions, 1 deletions
diff --git a/components/VirtualKeyboard.qml b/components/VirtualKeyboard.qml index 7848b75..edc7ab4 100644 --- a/components/VirtualKeyboard.qml +++ b/components/VirtualKeyboard.qml @@ -18,11 +18,65 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. *********************************************************************/ import QtQuick 2.5 import QtQuick.VirtualKeyboard 2.1 +import org.kde.plasma.core 2.0 as PlasmaCore InputPanel { id: inputPanel property bool activated: false active: activated && Qt.inputMethod.visible - visible: active width: parent.width + + states: [ + State { + name: "visible" + when: inputPanel.active + PropertyChanges { + target: inputPanel + y: inputPanel.parent.height - inputPanel.height + opacity: 1 + visible: true + } + }, + State { + name: "hidden" + when: !inputPanel.active + PropertyChanges { + target: inputPanel + y: inputPanel.parent.height + opacity: 0 + visible:false + } + } + ] + + transitions: [ + Transition { + to: "visible" + ParallelAnimation { + YAnimator { + // NOTE this is necessary as otherwise the keyboard always starts the transition with Y as 0, due to the internal reparenting happening when becomes active + from: inputPanel.parent.height + duration: PlasmaCore.Units.longDuration + easing.type: Easing.OutQuad + } + OpacityAnimator { + duration: PlasmaCore.Units.longDuration + easing.type: Easing.OutQuad + } + } + }, + Transition { + to: "hidden" + ParallelAnimation { + YAnimator { + duration: PlasmaCore.Units.longDuration + easing.type: Easing.InQuad + } + OpacityAnimator { + duration: PlasmaCore.Units.longDuration + easing.type: Easing.InQuad + } + } + } + ] } |