import QtQuick import Sloposk KeyboardSurface { id: surface // Window-relative rect of the first key of `type`; empty if there is none. function keyRect(type) { for (let i = 0; i < keys.count; ++i) { const key = keys.itemAt(i); if (key?.keyType === type) return key.mapToItem(null, 0, 0, key.width, key.height); } return Qt.rect(0, 0, 0, 0); } Repeater { id: keys model: surface.model delegate: Key { shiftMode: surface.controller ? surface.controller.shiftMode : KeyboardController.Off modifierModes: surface.controller ? surface.controller.modifierModes : ({}) blank: surface.trackpadActive } } AlternatesPopup { picker: surface.alternates z: 1 } }