diff --git a/quickshell/Modules/Plugins/DesktopPluginWrapper.qml b/quickshell/Modules/Plugins/DesktopPluginWrapper.qml index c7a5c766..c9f05249 100644 --- a/quickshell/Modules/Plugins/DesktopPluginWrapper.qml +++ b/quickshell/Modules/Plugins/DesktopPluginWrapper.qml @@ -211,6 +211,7 @@ Item { property real minWidth: contentLoader.item?.minWidth ?? 100 property real minHeight: contentLoader.item?.minHeight ?? 100 property bool forceSquare: contentLoader.item?.forceSquare ?? false + property bool acceptsKeyboardFocus: contentLoader.item?.acceptsKeyboardFocus ?? false property bool isInteracting: dragArea.pressed || resizeArea.pressed property var _gridSettingsTrigger: SettingsData.desktopWidgetGridSettings @@ -299,11 +300,14 @@ Item { } WlrLayershell.exclusionMode: ExclusionMode.Ignore WlrLayershell.keyboardFocus: { - if (!root.isInteracting) - return WlrKeyboardFocus.None; - if (CompositorService.useHyprlandFocusGrab) + if (root.isInteracting) { + if (CompositorService.useHyprlandFocusGrab) + return WlrKeyboardFocus.OnDemand; + return WlrKeyboardFocus.Exclusive; + } + if (root.acceptsKeyboardFocus) return WlrKeyboardFocus.OnDemand; - return WlrKeyboardFocus.Exclusive; + return WlrKeyboardFocus.None; } HyprlandFocusGrab {