It did not build, xcb_shape_id was not resolving, and it was not worth fixing. It bought a workaround for one configuration, cost two libraries and a window grab fifteen times a second, and still gave harder edges than the thing it was working around. Qt's transparent window background is the right mechanism and it already works. On X11 it needs a compositing manager, which Xfce ships with and which was simply switched off. The warning that names that setting stays, so the cause shows up in the log. Kept from the reverted commit: opaque mode paints a neutral card rather than the coat colour. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
36 lines
1.1 KiB
QML
36 lines
1.1 KiB
QML
pragma ComponentBehavior: Bound
|
|
import QtQuick
|
|
import TNCat
|
|
|
|
// The chip gets its own little click-through window so it can skitter away
|
|
// from the cat across the whole screen.
|
|
Window {
|
|
id: win
|
|
|
|
required property CatController cat
|
|
required property AppSettings settings
|
|
|
|
readonly property int chipSize: Math.round(settings.catSize * 0.46)
|
|
|
|
width: chipSize
|
|
height: Math.round(width * curl.implicitHeight / curl.implicitWidth)
|
|
x: cat.chipX - width / 2
|
|
y: Screen.desktopAvailableHeight - height - settings.bottomMargin
|
|
color: Platform.opaqueBackground ? "#d8d8d8" : "transparent"
|
|
flags: Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.Tool
|
|
| Qt.NoDropShadowWindowHint | Qt.WindowDoesNotAcceptFocus
|
|
| Qt.WindowTransparentForInput
|
|
| (Platform.bypassWindowManager ? Qt.X11BypassWindowManagerHint : 0)
|
|
visible: cat.chipVisible
|
|
|
|
Behavior on x {
|
|
NumberAnimation { duration: 320; easing.type: Easing.OutQuad }
|
|
}
|
|
|
|
Chip {
|
|
id: curl
|
|
anchors.fill: parent
|
|
spin: win.cat.chipSpin
|
|
}
|
|
}
|