diff --git a/applets/appmenu/lib/appmenuapplet.cpp b/applets/appmenu/lib/appmenuapplet.cpp --- a/applets/appmenu/lib/appmenuapplet.cpp +++ b/applets/appmenu/lib/appmenuapplet.cpp @@ -207,16 +207,11 @@ actionMenu->installEventFilter(this); } - setStatus(Plasma::Types::AcceptingInputStatus); actionMenu->winId();//create window handle actionMenu->windowHandle()->setTransientParent(ctx->window()); actionMenu->popup(pos); - //we can return to passive immediately, an autohide panel will stay open whilst - //any transient window is showing - setStatus(Plasma::Types::PassiveStatus); - if (view() == FullView) { // hide the old menu only after showing the new one to avoid brief flickering // in other windows as they briefly re-gain focus diff --git a/applets/appmenu/package/contents/ui/main.qml b/applets/appmenu/package/contents/ui/main.qml --- a/applets/appmenu/package/contents/ui/main.qml +++ b/applets/appmenu/package/contents/ui/main.qml @@ -56,9 +56,18 @@ Plasmoid.fullRepresentation: GridLayout { id: buttonGrid - //when we're not enabled set to active to show the configure button - Plasmoid.status: buttonRepeater.count > 0 ? - PlasmaCore.Types.ActiveStatus : PlasmaCore.Types.HiddenStatus + + Plasmoid.status: { + if (menuAvailable && plasmoid.nativeInterface.currentIndex > -1 && buttonRepeater.count > 0) { + return PlasmaCore.Types.NeedsAttentionStatus; + } else if (menuAvailable){ + //when we're not enabled set to active to show the configure button + return buttonRepeater.count > 0 ? PlasmaCore.Types.ActiveStatus : PlasmaCore.Types.HiddenStatus; + } else { + return PlasmaCore.Types.PassiveStatus; + } + } + Layout.minimumWidth: implicitWidth Layout.minimumHeight: implicitHeight