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 @@ -228,7 +228,13 @@ // FIXME TODO connect only once connect(actionMenu, &QMenu::aboutToHide, this, &AppMenuApplet::onMenuAboutToHide, Qt::UniqueConnection); - return; + } else { // is it just an action without a menu? + const QVariant data = m_model->index(idx, 0).data(AppMenuModel::ActionRole); + QAction *action = static_cast(data.value()); + if (action) { + Q_ASSERT(!action->menu()); + action->trigger(); + } } } 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 @@ -124,6 +124,10 @@ visible: text !== "" onClicked: { plasmoid.nativeInterface.trigger(this, index) + + checked = Qt.binding(function() { + return plasmoid.nativeInterface.currentIndex === index; + }); } } }