Files
dotfiles/quickshell_/FullwidthMouseArea.qml
2025-07-23 19:10:20 +01:00

54 lines
1.4 KiB
QML

import QtQuick
Item {
id: root
property bool fillWindowWidth: false;
property real extraVerticalMargin: 0;
property alias mouseArea: mouseArea;
property alias hoverEnabled: mouseArea.hoverEnabled;
property alias acceptedButtons: mouseArea.acceptedButtons;
property alias pressedButtons: mouseArea.pressedButtons;
property alias containsMouse: mouseArea.containsMouse;
property alias isPressed: mouseArea.pressed;
signal clicked(event: MouseEvent);
signal entered();
signal exited();
signal pressed(event: MouseEvent);
signal released(event: MouseEvent);
signal wheel(event: WheelEvent);
MouseArea {
id: mouseArea
anchors {
fill: parent
// not much point in finding exact values
leftMargin: root.fillWindowWidth ? -50 : 0
rightMargin: root.fillWindowWidth ? -50 : 0
topMargin: -root.extraVerticalMargin
bottomMargin: -root.extraVerticalMargin
}
Component.onCompleted: {
this.clicked.connect(root.clicked);
//this.entered.connect(root.entered);
//this.exited.connect(root.exited);
//this.pressed.connect(root.pressed);
this.released.connect(root.released);
//this.wheel.connect(root.wheel);
}
// for some reason MouseArea.pressed is both a prop and signal so connect doesn't work
onPressed: event => root.pressed(event);
// connecting to onwheel seems to implicitly accept it. undo that.
onWheel: event => {
event.accepted = false;
root.wheel(event);
}
}
}