Repository navigation
fix(svg): create the Linux native view in createNativeView - #197
Merged
Merged
Conversation
Svg created its GtkDrawingArea once, in the constructor, and returned it from createNativeView. Disposing the native view releases that widget, so when the same Svg was set up again (an Angular HMR update re-attaching the view tree) it handed back a freed widget: GTK logged invalid-widget criticals and the app crashed. Create the drawing area, and register its draw callback, each time the native view is created.
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the
|
|
ℹ️ Note: npm publishing is disabled for pull requests. |
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.
On Linux,
Svgcreated itsGtkDrawingAreaonce, in the constructor, and returned that same widget fromcreateNativeView(). Disposing the native view releases the widget, so when the sameSvginstance was set up again (for example when an Angular HMR update re-attaches the view tree) it returned a freed widget. GTK loggedG_IS_OBJECT/GTK_IS_WIDGETcriticals and the app crashed.The drawing area and its draw callback registration are now created in
createNativeView(), and the reference is cleared indisposeNativeView().