Commit fa4f123f authored by Martin Flöser's avatar Martin Flöser

Add button to dynamically resize virtual keyboard

One of the things I dislike most about our virtual keyboard integration
is it's size. It's at least on my system covering too much vertical
space. Unfortuantely the keyboard API does not offer a way to control
the vertical space - one can only control the width. Thus it's also not
possible to just provide the keyboard in the optimal size.

This change tries to address the problem by adding a resize button. When
pressed one can dynamically decrease and increase the width of the
keyboard and thus also the height.

The button is added to the top/right corner. Ideally it would be added
to the symbol button row, but either I couldn't find the appropriate API
hooks or it's not possible.

Test Plan: Started KWin with the change and tested with touch input

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision:
parent 46eceef2
......@@ -18,15 +18,45 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <>.
import QtQuick 2.0
import QtQuick.Controls 2.3
import QtQuick.VirtualKeyboard 2.1
Item {
id: window
property real adjustment: 0
property real adjustmentFactor: 0.0
InputPanel {
id: inputPanel
objectName: "inputPanel"
anchors.left: parent.left
anchors.right: parent.right
width: parent.width - parent.width * parent.adjustmentFactor
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: parent.bottom
ToolButton {
id: resizeButton
flat: true
display: AbstractButton.IconOnly "transform-scale"
icon.color: "white"
down: mouseArea.pressed
anchors {
right: inputPanel.right
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;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment