Review of "Snap Text" version 3

Details Page Preview

Grab text from anywhere on your screen with Snap Text, just like the popular macOS feature. Select any area, and it instantly extracts detected text with OCR and copies it to your clipboard. Works with images, screenshots, dialogs, documents, apps, and other places where normal text selection is not available. Can also instantly auto-translate. It aims to be the perfect tool for capturing unselectable text from images, documents, videos, and system dialogs.

Extension Homepage
https://github.com/cwittenberg/snaptext

No comments.

Diff Against

Files

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

Shexli (experimental) warning 2 manual_review 1

Shexli found 3 issues that may need reviewer attention.

EGO-A-005 manual_review

extensions should not access the clipboard directly

Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.

Review Guidelines

  • extension.js:75
    St.Clipboard.get_default()
  • extension.js:176
    St.Clipboard.get_default()
  • extension.js:328
    St.Clipboard.get_default()

EGO-L-003 warning

signals connected by extension should be disconnected in disable()

Signals assigned in `enable()` are missing matching disconnect calls in `disable()` or its helper methods.

Disconnect all signals

  • extension.js:224
            this._errorDialog.connect('destroy', () => {
                this._errorDialog = null;
            })
  • extension.js:123
            this._indicator.connect('button-press-event', (actor, event) => {
                let button = event.get_button();
                
                if (button === 1) { 
                    if (this._indicator.menu.isOpen) {
                        this._indicator.menu.close();
                    }
                    
  • extension.js:136
            this._indicator.connect('button-release-event', (actor, event) => {
                let button = event.get_button();
                
                if (button === 3) { 
                    this._buildMenu();
                    this._indicator.menu.toggle();
                    return Clutter.EVENT_STOP; 
           

EGO-L-004 warning

main loop sources should be removed in disable()

Main loop sources assigned in `enable()` are missing matching removals in `disable()` or its helper methods.

Remove main loop sources

  • extension.js:85
                    this._timeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 2000, () => {
                        this._timeoutId = null;
                        copyIcon.icon_name = 'edit-copy-symbolic';
                        return GLib.SOURCE_REMOVE;
                    })

All Versions

Version Status
8 Active
7 Inactive
6 Rejected
5 Inactive
4 Inactive
3 Rejected
2 Rejected
1 Rejected

Previous Reviews on this Version

cwittenberg auto- rejected
Auto-rejected because of new version 4 was uploaded