blob: 3c2958a5c6d884f1cee22f24925cb215bb5486e7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
pragma ComponentBehavior: Bound
import "root:/widgets"
import "root:/services"
import "root:/config"
import Quickshell
import QtQuick
import QtQuick.Effects
Scope {
id: root
required property ShellScreen screen
StyledWindow {
id: win
screen: root.screen
name: "border"
exclusionMode: ExclusionMode.Ignore
mask: Region {
x: BorderConfig.thickness
y: BorderConfig.thickness
width: win.screen.width - BorderConfig.thickness * 2
height: win.screen.height - BorderConfig.thickness * 2
intersection: Intersection.Xor
}
anchors.top: true
anchors.bottom: true
anchors.left: true
anchors.right: true
StyledRect {
id: rect
anchors.fill: parent
color: Colours.alpha(BorderConfig.colour, false)
visible: false
}
Item {
id: mask
anchors.fill: parent
layer.enabled: true
visible: false
Rectangle {
anchors.fill: parent
anchors.margins: BorderConfig.thickness
radius: BorderConfig.rounding
}
}
MultiEffect {
id: effect
visible: false
anchors.fill: parent
maskEnabled: true
maskInverted: true
maskSource: mask
source: rect
maskThresholdMin: 0.5
maskSpreadAtMin: 1
}
LayerShadow {
source: effect
}
MouseArea {
anchors.fill: parent
hoverEnabled: true
onPositionChanged: event => Drawers.setPosForScreen(root.screen, event.x, event.y)
}
}
ExclusionZone {
anchors.left: false
}
ExclusionZone {
anchors.top: false
}
ExclusionZone {
anchors.right: false
}
ExclusionZone {
anchors.bottom: false
}
component ExclusionZone: StyledWindow {
screen: root.screen
name: "border-exclusion"
width: BorderConfig.thickness
height: BorderConfig.thickness
anchors.top: true
anchors.left: true
anchors.bottom: true
anchors.right: true
}
}
|