1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-24 21:42:51 -05:00

niri: track open modals in modal manager for focus transfers

This commit is contained in:
bbedward
2025-12-17 20:21:34 -05:00
parent 18231ed324
commit 2e4d56728b
6 changed files with 79 additions and 61 deletions

View File

@@ -10,15 +10,11 @@ import qs.Modules.Settings.Widgets
Item {
id: themeColorsTab
property var cachedIconThemes: []
property var cachedMatugenSchemes: []
property var cachedIconThemes: SettingsData.availableIconThemes
property var cachedMatugenSchemes: Theme.availableMatugenSchemes.map(option => option.label)
Component.onCompleted: {
SettingsData.detectAvailableIconThemes();
cachedIconThemes = SettingsData.availableIconThemes;
cachedMatugenSchemes = Theme.availableMatugenSchemes.map(function (option) {
return option.label;
});
}
DankFlickable {

View File

@@ -92,6 +92,7 @@ Scope {
readonly property bool shouldShowSpotlight: niriOverviewScope.searchActive && screen.name === niriOverviewScope.searchActiveScreen && !niriOverviewScope.isClosing
readonly property bool isSpotlightScreen: screen.name === niriOverviewScope.searchActiveScreen
property bool hasActivePopout: !!PopoutManager.currentPopoutsByScreen[screen.name]
property bool hasActiveModal: !!ModalManager.currentModalsByScreen[screen.name]
Connections {
target: PopoutManager
@@ -100,6 +101,13 @@ Scope {
}
}
Connections {
target: ModalManager
function onModalChanged() {
overlayWindow.hasActiveModal = !!ModalManager.currentModalsByScreen[overlayWindow.screen.name];
}
}
screen: modelData
visible: NiriService.inOverview || niriOverviewScope.isClosing
color: "transparent"
@@ -114,7 +122,7 @@ Scope {
return WlrKeyboardFocus.None;
if (niriOverviewScope.releaseKeyboard)
return WlrKeyboardFocus.None;
if (hasActivePopout)
if (hasActivePopout || hasActiveModal)
return WlrKeyboardFocus.None;
return WlrKeyboardFocus.Exclusive;
}