Conversation
The stack is reordered by window activation, so its bottom item is not always the current primary page.
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (1)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughWhen a primary page opens, Priority: ➖ Normal Merge Risk: ⚪ Minimal · up to The change replaces the matching primary page or appends one when absent, preserving open dialogs. No concrete new failure path is established, so no actionable merge risk remains. 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
onOpenreplaced the bottom item of the stack on a primary page open, assuming it always holds the current primary pageraiseWindowInStackreorders the stack by window activation, so an open dialog can end up at the bottom and be overwrittenContext
Reproduced on 4.7.2 and on current main: open a plugin window, switch to Home, close the plugin window. A debug build aborts on the
obj.objectId.isValid()assert inonClose. In a release build the assert is compiled out and the followingobj.resolve()runs on a default constructedObjectInfo.The same change also covers a stack that is not empty but has no primary page yet, which happens when the restore session dialog opens before the home page.
Closes musescore/MuseScore#35128