notifications: no selection ring on modal open clipboard: match the notification header and add a settings butto

settings/interface: explicit window radius match option
cc: restore dim in edit mode

fixes #3623
This commit is contained in:
bbedward committed 2026-09-29 17:44:20 -04:00
1 parent f025a8d7b4
commit 5cfda4ebe7
9 files changed
+132 -63

No files matched your search

@@ -47,13 +47,14 @@ Item {
readonly property bool tall: height >= CcMetrics.gridRowUnit * 2
readonly property bool hasIconBox: (showExpand || opensPage || expanded) && !compact
readonly property bool showsActive: active && interactive
readonly property real restRadius: {
if (active)
if (showsActive)
return Math.min(CcMetrics.tileActiveRadius, width / 2, height / 2);
return tall ? Math.min(CcMetrics.tallTileRadius, width / 2, height / 2) : Theme.fullRadius(width, height);
}
readonly property bool acceptsInput: interactive && enabled
readonly property bool bodyActive: active && !hasIconBox
readonly property bool bodyActive: showsActive && !hasIconBox
readonly property color bodyColor: {
if (!enabled)
return Theme.onSurface_12;
@@ -73,20 +74,20 @@ Item {
if (!enabled)
return Theme.onSurface_38;
if (hasIconBox)
return active ? CcMetrics.tileActiveContent : CcMetrics.tileInactiveContent;
return showsActive ? CcMetrics.tileActiveContent : CcMetrics.tileInactiveContent;
return bodyActive ? CcMetrics.tileActiveContent : root.restIconColor;
}
readonly property color iconBoxColor: {
if (!enabled)
return Theme.onSurface_12;
return active ? CcMetrics.tileActiveColor : CcMetrics.iconBoxInactiveColor;
return showsActive ? CcMetrics.tileActiveColor : CcMetrics.iconBoxInactiveColor;
}
property real bodyRadius: bodyLayer.pressed ? Math.min(Theme.cornerRadiusM, width / 2, height / 2) : restRadius
property real iconBoxRadius: {
if (boxLayer.pressed)
return Math.min(Theme.cornerRadiusS, CcMetrics.iconBoxSize / 2);
if (active)
if (showsActive)
return Math.min(CcMetrics.iconBoxActiveRadius, CcMetrics.iconBoxSize / 2);
return Theme.fullRadius(CcMetrics.iconBoxSize, CcMetrics.iconBoxSize);
}
@@ -198,7 +199,7 @@ Item {
name: root.iconName
size: CcMetrics.tileIconSize
color: root.iconColor
filled: root.active
filled: root.showsActive
rotation: root.iconRotation
visible: root.compact
@@ -260,7 +261,7 @@ Item {
name: root.iconName
size: root.hasIconBox ? CcMetrics.iconBoxIconSize : CcMetrics.tileIconSize
color: root.iconColor
filled: root.active
filled: root.showsActive
rotation: root.iconRotation
DankBlink {
@@ -103,6 +103,7 @@ Item {
id: notificationHeader
objectName: "notificationHeader"
historyView: historyList
transientSurfaceTracker: root.host.transientSurfaceTracker ?? null
onHeightChanged: root.cachedHeaderHeight = height
onSettingsRequested: {
@@ -8,9 +8,11 @@ Item {
id: root
property var keyboardController: null
property var historyView: null
property int currentTab: 0
property var transientSurfaceTracker: null
property bool modal: false
readonly property var hintsOwner: currentTab === 1 && historyView ? historyView : keyboardController
readonly property string currentLabel: {
const count = NotificationService.notifications.length;
if (count === 0)
@@ -75,11 +77,15 @@ Item {
}
DankActionButton {
visible: root.keyboardController !== null
readonly property bool hintsShown: root.hintsOwner?.showKeyboardHints ?? false
visible: root.hintsOwner !== null
iconName: "info"
buttonSize: Theme.buttonHeightXS
backgroundColor: hintsShown ? Theme.secondaryContainer : "transparent"
iconColor: hintsShown ? Theme.onSecondaryContainer : Theme.onSurfaceVariant
tooltipText: I18n.tr("Keyboard shortcuts")
onClicked: root.keyboardController.showKeyboardHints = !root.keyboardController.showKeyboardHints
onClicked: root.hintsOwner.showKeyboardHints = !hintsShown
}
}
@@ -257,13 +257,25 @@ Column {
onSliderValueChanged: newValue => SettingsData.set("fixedRadius", newValue)
}
SettingsToggleRow {
tab: "theme"
tags: ["window", "corner", "radius", "match", "follow", "link", "strength", "compositor"]
settingKey: "windowRadiusMatch"
text: I18n.tr("Match corner style", "toggle: window radius follows the corner style setting")
visible: root.windowRadiusKey !== ""
resetKeys: root.windowRadiusKey !== "" ? [root.windowRadiusKey] : []
checked: Theme.compositorRadiusOverride < 0
onToggled: checked => SettingsData.set(root.windowRadiusKey, checked ? -1 : Math.round(Theme.windowRadius))
}
SettingsSliderRow {
tab: "theme"
tags: ["window", "corner", "radius", "rounded", "popout", "menu", "modal", "compositor", "niri", "hyprland", "mango"]
settingKey: "windowRadius"
text: I18n.tr("Window radius")
visible: root.windowRadiusKey !== ""
resetKeys: root.windowRadiusKey !== "" ? [root.windowRadiusKey] : []
enabled: Theme.compositorRadiusOverride >= 0
resetKeys: []
value: Theme.windowRadius
minimum: 0
maximum: 64