Review of "IBus Tweaker" version 27

Details Page Preview

Tweaker of IBus for orientation, theme, font, input mode and clipboard history For support, please report any issues via the homepage link below.

Extension Homepage
https://github.com/tuberry/ibus-tweaker

No comments.

Diff Against

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

All Versions

Previous Reviews on this Version

andyholmes active
You should probably avoid use `GObject.run_dispose()` in user code, as this deallocates memory that should be left to the javascript engine to free.
grroot posted a review
Thanks, but if I don't use `run_dispose()`, the `gsettings.bind` seems not to be automatically removed as it should be (https://gjs-docs.gnome.org/gio20~2.66p/gio.settings#function-unbind). Actually, when I disable an extension and change its setting from `prefs` page, the counterpart setter(bind with GObject property) in `extension.js` will be called once. What's the right way to use `bind` as it looks better than `connect/disconnect` settings?
andyholmes posted a review
I would guess that if the bindings are not being removed you are leaking a reference to the target object somewhere although I don't see one at a quick glance. If you can create a minimal reproducer (ie. a standalone script), you might want to open an issue in GJS as this may be a garbage collector bug. I wouldn't reject an extension for using `run_dipose()`, but it is possible to segfault GJS/gnome-shell by using it. So just ensure you're only using it on objects you directly subclass from GObject.
grroot posted a review
Strange, I cannot reproduce it steadily now (https://github.com/tuberry/ibus-tweaker/files/5696844/TestBind.zip). I will drop all the `run_dispose()`. Thanks!