28d5a4e73b
On 5.15, the VirtualKeyboard did not have a correct z-order which caused the virtualkeyboard to hide as soon as key was pressed, upon investigation it seems that upstream Qt changed behavior in following changes. https://codereview.qt-project.org/c/qt/qtvirtualkeyboard/+/292472 https://codereview.qt-project.org/c/qt/qtvirtualkeyboard/+/292674 Now when desktop-integration is used (i.e non-application embedded mode) one need to set property desktopPanel to true so that it have correct z-ordering and does not miss input events. This is used in Component.onCompleted to avoid breaking it for the Qt 5.14.x qtvirtualkeyboard. When we switch to 5.15 property assignment can be moved to InputPanel declaration.
72 lines
2.5 KiB
QML
72 lines
2.5 KiB
QML
/********************************************************************
|
|
KWin - the KDE window manager
|
|
This file is part of the KDE project.
|
|
|
|
Copyright (C) 2016 Martin Gräßlin <mgraesslin@kde.org>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*********************************************************************/
|
|
import QtQuick 2.0
|
|
import QtQuick.Controls 2.3
|
|
import QtQuick.VirtualKeyboard 2.1
|
|
import org.kde.kirigami 2.5 as Kirigami
|
|
|
|
Item {
|
|
id: window
|
|
property real adjustment: 0
|
|
property real adjustmentFactor: 0.0
|
|
InputPanel {
|
|
id: inputPanel
|
|
objectName: "inputPanel"
|
|
width: parent.width - parent.width * parent.adjustmentFactor
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
anchors.bottom: parent.bottom
|
|
}
|
|
//NOTE: ToolButton for some reasons breaks the virtual keyboard loading on Plasma Mobile
|
|
Button {
|
|
id: resizeButton
|
|
visible: !Kirigami.Settings.isMobile //don't show on handheld devices
|
|
flat: true
|
|
display: AbstractButton.IconOnly
|
|
icon.name: "transform-scale"
|
|
icon.color: "white"
|
|
down: mouseArea.pressed
|
|
|
|
anchors {
|
|
right: inputPanel.right
|
|
top: inputPanel.top
|
|
}
|
|
|
|
MouseArea {
|
|
id: mouseArea
|
|
property real startPoint: 0
|
|
anchors.fill: parent
|
|
onPressed: {
|
|
startPoint = mouse.x;
|
|
}
|
|
onPositionChanged: {
|
|
window.adjustment -= (mouse.x - startPoint);
|
|
window.adjustmentFactor = Math.min(Math.max(window.adjustment / window.width, 0.0), 0.66);
|
|
startPoint = mouse.x;
|
|
}
|
|
}
|
|
}
|
|
// this property assignment is done here to not break 5.14.x qtvirtualkeyboard
|
|
// TODO: Move it to InputPanel when we depend on 5.15
|
|
Component.onCompleted: {
|
|
if (inputPanel.hasOwnProperty("desktopPanel")) {
|
|
inputPanel.desktopPanel = true;
|
|
}
|
|
}
|
|
}
|