Restore application access for third-party menus - #10671
Open
smillunchick wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Restore the app list for third-party menu plugins such as Omalaunch after the scoped plugin API change.
iconIndexChangedthrough the app-library facade so menus can finish their icon-refresh cycle. This exposes a signal, not the private icon index.Cause
Reproduced with Omalaunch 0.3.0 and
omarchy-dev 4.0.0.r2071.ga703092-1. The currentquattrobranch has the same affected shell code.computePanelEntries()accepts the menu manifest, then passes it through anInstantiator. Qt converts its nestedkindsarray to a sequence: it still serializes as["menu","bar-widget"]and supportsindexOf("menu"), butArray.isArray(modelData.manifest.kinds)returnsfalse.manifestHasKind()then rejects the menu grant, and the injectedPluginShellApi.appLibraryisnull. The launcher shows an empty Apps menu even though desktop entries remain installed.The fix keeps the existing capability checks and uses the registry's original validated object. It does not restore the full shell object or widen non-menu access.
Once the app library attaches, Omalaunch also needs its existing
iconIndexChangedcompletion signal; without it, an icon refresh can stay pending indefinitely.Validation
Passed:
bash test/shell.d/panel-menu-capability-test.sh— real Qt model conversion, actual facade components, and the production binding/grant/signal code; works without a compositor.bash test/shell.d/plugin-auth-boundary-test.sh— static checks and QML runtime fixture.bash test/shell.d/plugin-registry-contract-test.sh— QML runtime fixture.bash test/shell.d/app-search-test.sh.git diff --check.The new test first failed on the missing menu grant, then on missing icon completion after applying only the manifest fix. It passes with both changes. Existing authentication and ordinary-panel restrictions still pass.
The patched full desktop has not been visually verified. The installed, package-owned shell was left unchanged; no development link, permission change, migration, or release is included.
Companion fix
Omalaunch separately relies on the now-private
manifest.__sourceDirfor its helper paths. Its companion PR resolves the plugin directory from its own QML file: DanielLemky/omalaunch#58Both fixes are needed to restore that launcher on the affected host.