Add button to dynamically resize virtual keyboard
Summary: 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: https://phabricator.kde.org/D16485
This commit is contained in:
parent
46eceef299
commit
fa4f123fba
1 changed files with 32 additions and 2 deletions
|
@ -18,15 +18,45 @@ 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
|
||||
|
||||
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
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue