diff --git a/abstract_client.cpp b/abstract_client.cpp index ebba445a5d..fefeac2320 100644 --- a/abstract_client.cpp +++ b/abstract_client.cpp @@ -1421,6 +1421,11 @@ void AbstractClient::setupWindowManagementInterface() w->setGeometry(frameGeometry()); } ); + connect(this, &AbstractClient::applicationMenuChanged, w, + [w, this] { + w->setApplicationMenuPaths(applicationMenuServiceName(), applicationMenuObjectPath()); + } + ); connect(w, &PlasmaWindowInterface::closeRequested, this, [this] { closeWindow(); }); connect(w, &PlasmaWindowInterface::moveRequested, this, [this] { @@ -2465,6 +2470,7 @@ void AbstractClient::updateApplicationMenuServiceName(const QString &serviceName const bool new_hasApplicationMenu = hasApplicationMenu(); + emit applicationMenuChanged(); if (old_hasApplicationMenu != new_hasApplicationMenu) { emit hasApplicationMenuChanged(new_hasApplicationMenu); } @@ -2478,6 +2484,7 @@ void AbstractClient::updateApplicationMenuObjectPath(const QString &objectPath) const bool new_hasApplicationMenu = hasApplicationMenu(); + emit applicationMenuChanged(); if (old_hasApplicationMenu != new_hasApplicationMenu) { emit hasApplicationMenuChanged(new_hasApplicationMenu); } diff --git a/abstract_client.h b/abstract_client.h index 9ce551f0db..cf322cbe71 100644 --- a/abstract_client.h +++ b/abstract_client.h @@ -907,6 +907,7 @@ Q_SIGNALS: void shadeableChanged(bool); void maximizeableChanged(bool); void desktopFileNameChanged(); + void applicationMenuChanged(); void hasApplicationMenuChanged(bool); void applicationMenuActiveChanged(bool); void unresponsiveChanged(bool);