A compact three-day weather chart for up to three saved locations
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.
extension.js:575
this._bigIcon = new St.Icon({
gicon: this._weatherIcon('unknown'),
icon_size: 42,
style_class: 'mw-big-icon',
})
extension.js:625
this._chart = new ForecastChart()
extension.js:518
this._locationBar = new St.BoxLayout({
style_class: 'mw-location-bar',
x_expand: true,
})
extension.js:522
this._locationTabs = new St.BoxLayout({
style_class: 'mw-location-tabs',
x_expand: true,
})
extension.js:494
this._panelIcon = new St.Icon({
gicon: this._weatherIcon('unknown'),
icon_size: 17,
style_class: 'mw-panel-icon',
})
extension.js:581
this._refreshButton = new St.Button({
label: '↻',
style_class: 'mw-refresh-button',
can_focus: true,
accessible_name: this._t('refreshWeather'),
})
extension.js:527
this._removeLocationButton = new St.Button({
label: '−',
style_class: 'mw-location-remove-button',
can_focus: true,
visible: false,
})
extension.js:538
this._searchBox = new St.BoxLayout({
vertical: true,
style_class: 'mw-search-box',
x_expand: true,
visible: false,
})
extension.js:544
this._searchEntry = new St.Entry({
hint_text: this._t('searchLocation'),
can_focus: true,
style_class: 'mw-search-entry',
x_expand: true,
})
extension.js:556
this._searchResults = new St.BoxLayout({
vertical: true,
style_class: 'mw-search-results',
x_expand: true,
})
Version 4 addresses the lifecycle findings. In disable(), the extension invalidates pending request IDs, cancels requests, and calls this._session.abort() directly. It also disconnects the menu signal and destroys the panel indicator. The remaining experimental EGO-L-002 warning lists child actors of that indicator. They are destroyed recursively by this._indicator.destroy() in _destroyUi(), and the extension clears its references afterward. Calling destroy() separately on those children would duplicate teardown. The lifecycle test covers callbacks delivered synchronously during cancellation and abort. Source for this upload: https://github.com/vibecodingwean/wetterkurve/tree/v1.1.24