Adds a force quit button. Click the toolbar button, then choose the window you want to force quit. On accidental click, right click anywhere or press [Esc] to abort the kill.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
EGO-L-002 warning
objects created by extension should be destroyed in disable()
Objects assigned in `enable()` are missing matching `.destroy()` calls in `disable()` or its helper methods.
selection.js:67
this._areaResolution = new St.Label({
style_class: 'area-resolution',
text: '',
})
selection.js:56
this._areaSelection = new St.Widget({
name: 'area-selection',
style_class: 'area-selection',
visible: 'true',
reactive: 'true',
x: -10,
y: -10,
})
EGO-L-005 warning
owned object references should be released in disable()
Owned references that are cleaned up in `disable()` should also be released with `null` or `undefined`.
selection.js:67
this._areaResolution = new St.Label({
style_class: 'area-resolution',
text: '',
})
selection.js:56
this._areaSelection = new St.Widget({
name: 'area-selection',
style_class: 'area-selection',
visible: 'true',
reactive: 'true',
x: -10,
y: -10,
})
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.
extension.js:39
this._clickGesture.connect('recognize', () => {
this._selection = new Selection.SelectionWindow();
})
selection.js:79
this._signalCapturedEvent = this._areaSelection.connect(
'captured-event',
this._onCaptureEvent.bind(this)
)
| Version | Status |
|---|---|
| 47 | Active |
| 46 | Active |
| 45 | Active |
| 44 | Rejected |
| 43 | Rejected |
| 42 | Rejected |
| 41 | Active |
| 40 | Rejected |
| 39 | Active |
| 38 | Rejected |
| 37 | Active |
| 36 | Active |
| 35 | Rejected |
| 34 | Active |
| 33 | Active |
| 32 | Active |
| 31 | Active |
| 30 | Inactive |
| 29 | Rejected |
| 28 | Active |
| 27 | Active |
| 26 | Active |
| 25 | Active |
| 24 | Rejected |
| 23 | Rejected |
| 22 | Active |
| 21 | Active |
| 20 | Active |
| 19 | Active |
| 18 | Active |
| 17 | Inactive |
| 16 | Inactive |
| 15 | Active |
| 14 | Rejected |
| 13 | Active |
| 12 | Active |
| 11 | Active |
| 10 | Inactive |
| 9 | Inactive |
| 8 | Active |
| 7 | Active |
| 6 | Active |
| 5 | Active |
| 4 | Active |
| 3 | Active |
| 2 | Active |
| 1 | Rejected |
The previous method did not even exist. Subclassing SignalEmitter would hopefully call emit stop on destruction which will do the cleanup
The 'stop' signal is emitted on a button-press event, so no, that won't happen on destruction. It also doesn't look like anything connects to the 'stop' signal? The easiest option would really to add a cleanup method (like "destroy()") to SelectionWindow that at the very least calls `this._capture._stop()`, then make sure that both the extension and button classes call it on their respective "this._selection" objects on disable/destroy.