Skip to content

Cairo shim refactor - #1022

Merged
highperformancecoder merged 27 commits into
developfrom
cairoShim-refactor
Oct 29, 2026
Merged

highperformancecoder merged 27 commits into
developfrom
cairoShim-refactor

Conversation

@highperformancecoder

@highperformancecoder highperformancecoder commented Oct 21, 2026 •

Copy link
Copy Markdown
Owner

This change is Reviewable

Copilot AI balanced review requested due to automatic review settings October 21, 2026 06:06
@coderabbitai

coderabbitai Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 5c418d18-3199-4bf5-9bbf-94156ceae432

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Rendering regressions, failed-export state restoration, and dependency integration issues remain unresolved.

6 open issues
1 file not reviewed
  • gui-js/package-lock.json: Generated file
What changed in this PR

Moves Minsky’s rendering from its local Cairo shim to Mansoura, updating drawing interfaces, native-window exports, bindings and tests.

Changes:

  • Migrates model and equation rendering to Mansoura.
  • Replaces Godley popup interfaces with editor interfaces.
  • Integrates the new dependency and updates rendering tests.
File Description
test/​testSheet.cc Adds sheet drawing coverage.
test/​testPlotWidget.cc Tests drawing and cached legend sizes.
test/​testModel.cc Migrates rendering fixtures and editor tests.
test/​testMinsky.cc Updates the editor include.
test/​testLock.cc Uses Mansoura for drawing tests.
test/​testGrid.cc Updates drawing mocks and calls.
test/​testCanvas.cc Uses Mansoura plot styles.
test/​Makefile Adds Mansoura includes and linking.
test/​00/​godleyTableWindow.sh Removes popup rendering regression test.
schema/​schemaHelper.h Adds enum conversion helper.
schema/​schema3.h Migrates palette types.
schema/​schema2.h Migrates palette types and descriptors.
schema/​schema1.h Migrates plot-side type.
schema/​schema0.h Migrates legacy plot types.
schema/​schema0.cc Removes obsolete descriptor include.
schema/​plotOptions.h Uses Mansoura plot options.
RESTService/​typescriptAPI.cc Updates generated API types.
RESTService/​pyminsky.cc Adds rendering descriptors.
model/​wire.h Migrates wire drawing interface.
model/​wire.cc Uses abstract drawing and path operations.
model/​windowInformation.h Declares buffered rendering callback.
model/​windowInformation.cc Implements buffered rendering.
model/​variablePane.h Updates cell and pane interfaces.
model/​variablePane.cc Migrates measurement and drawing.
model/​variable.h Migrates rendering caches and mini-plots.
model/​variable.cc Migrates drawing and gates slider hit-testing.
model/​userFunction.h Updates rendering interfaces.
model/​userFunction.cc Updates icon drawing signature.
model/​switchIcon.h Updates drawing interface.
model/​switchIcon.cc Uses Mansoura drawing and colours.
model/​SVGItem.h Removes local SVG renderer declaration.
model/​SVGItem.cc Removes local SVG implementation.
model/​sheet.h Updates drawing interfaces.
model/​sheet.cc Migrates sheet and text rendering.
model/​renderNativeWindow.h Adds abstract rendering and export interfaces.
model/​renderNativeWindow.cc Delegates rendering and exports to Mansoura.
model/​ravelWrap.h Updates Ravel rendering types.
model/​ravelWrap.cc Uses the new Ravel adapter.
model/​ravelRenderer.h Adds Mansoura-to-Ravel rendering adapter.
model/​pubTab.h Updates redraw interface.
model/​pubTab.cc Migrates publication drawing.
model/​plotWidget.h Uses Mansoura plotting interfaces.
model/​plotWidget.cc Migrates plotting and cached legend hit-testing.
model/​phillipsDiagram.h Updates drawing and redraw interfaces.
model/​phillipsDiagram.cc Migrates diagram rendering.
model/​operationRS2.cc Adds Mansoura descriptors.
model/​operationRS1.cc Adds Mansoura descriptors.
model/​operationRS.cc Adds Mansoura descriptors.
model/​operationBase.h Migrates rendering cache and interfaces.
model/​operation.h Updates operation drawing helpers.
model/​operation.cc Migrates operation and path rendering.
model/​minskyCairoRenderer.h Removes the old Ravel adapter.
model/​minsky.h Updates SVG type and removes popup redraw API.
model/​minsky.cc Updates font settings and removes popup redraw logic.
model/​lock.h Migrates SVG and drawing types.
model/​lock.cc Uses Mansoura lock rendering.
model/​item.h Updates shared drawing interfaces.
model/​item.cc Migrates drawing and bounds measurement.
model/​intOp.h Updates drawing interface.
model/​intOp.cc Migrates clipping paths.
model/​ICairoShim.h Removes the local drawing abstraction.
model/​group.h Updates group rendering interfaces.
model/​group.cc Migrates group and edge-variable drawing.
model/​grid.h Passes drawing contexts through grid interfaces.
model/​grid.cc Updates grid drawing calls.
model/​godleyTableEditor.h Migrates editor interfaces and removes popup class.
model/​godleyTableEditor.cc Migrates table rendering and adds bounds guards.
model/​godleyIcon.h Removes popup state and updates rendering types.
model/​godleyIcon.cc Migrates table measurement and icon rendering.
model/​fontDisplay.h Uses Mansoura text rendering.
model/​equationDisplay.h Updates redraw interface.
model/​equationDisplay.cc Migrates equation rendering and measurement.
model/​dataOp.h Updates drawing interface.
model/​CSVDialog.cc Removes unused rendering aliases.
model/​canvas.h Updates canvas rendering interfaces.
model/​canvas.cc Migrates drawing, recentring and PNG export.
model/​cairoItems.h Updates variable-rendering helpers.
model/​cairoItems.cc Uses Mansoura measurement and triangle drawing.
Makefile Builds and links Mansoura.
gui-js/​package-lock.json Removes optional peer dependency entries.
gui-js/​libs/​ui-components/​src/​lib/​godley-widget-view/​godley-widget-view.component.ts Switches to editor API and removes native rendering hooks.
gui-js/​apps/​minsky-electron/​src/​app/​managers/​GodleyMenuManager.ts Routes menu actions to the editor.
gui-js/​apps/​minsky-electron/​src/​app/​managers/​ContextMenuManager.ts Routes context actions to the editor.
gui-js/​apps/​minsky-electron/​src/​app/​managers/​CommandsManager.ts Removes popup widget adjustment.
gui-js/​apps/​minsky-electron/​src/​app/​events/​electron.events.ts Routes Godley events to the editor.
engine/​equations.h Updates equation rendering interfaces.
engine/​cairoShimCairo.h Removes local Cairo backend declaration.
engine/​cairoShimCairo.cc Removes local Cairo backend implementation.
createLinkGroupIcons.cc Uses Mansoura palette colours.
.gitmodules Registers the Mansoura submodule.

Review effort: Balanced

Comment thread .gitmodules Resolved
Comment thread Makefile Resolved
Comment thread Makefile Resolved
Comment thread model/canvas.cc Resolved
Comment thread model/minsky.cc Resolved
Comment thread model/sheet.cc Resolved
@highperformancecoder
highperformancecoder merged commit c9d14c3 into develop Oct 29, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants