Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions yarr@jtoberling/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [2.1.1] - 2025-09-06
- High CPU% fixup and remove xsession-errors pollution

## [2.1.0] - 2025-08-21
- Stability improvements
- Using SQL.js for sqlite operations
Expand Down
16 changes: 5 additions & 11 deletions yarr@jtoberling/files/yarr@jtoberling/desklet.js
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,11 @@ class YarrDesklet extends Desklet.Desklet {
// Initialize async managers
this.timerManager = new TimerManager();
this.uiUpdateManager = new UIUpdateManager();
this.uiUpdateManager.setUpdateCallback(() => this.displayItems());
this.uiUpdateManager.setUpdateCallback(() => {
if (this.uiDisplay && typeof this.uiDisplay.displayItems === 'function') {
this.uiDisplay.displayItems();
}
});
// AsyncErrorHandler is available from logger module
this.asyncCommandExecutor = AsyncCommandExecutor;

Expand Down Expand Up @@ -1067,23 +1071,13 @@ class YarrDesklet extends Desklet.Desklet {
// Internal method to perform the actual display update
_performDisplayUpdate() {
try {
Logger.debug(`_performDisplayUpdate called`);
Logger.debug(`uiUpdateManager available: ${!!this.uiUpdateManager}`);
Logger.debug(`uiUpdateManager.scheduleUpdate available: ${!!(this.uiUpdateManager && typeof this.uiUpdateManager.scheduleUpdate === 'function')}`);

// PERFORMANCE FIX: Removed timing tracking that was causing system lag

// Use UI update manager for batching if available
if (this.uiUpdateManager && typeof this.uiUpdateManager.scheduleUpdate === 'function') {
Logger.debug(`Using UI update manager for display update`);
this.uiUpdateManager.scheduleUpdate();
} else {
Logger.debug(`UI update manager not available, using direct update`);
// Fallback: direct update with error handling
if (this.uiDisplay && typeof this.uiDisplay.displayItems === 'function') {
Logger.debug(`Calling uiDisplay.displayItems() directly`);
this.uiDisplay.displayItems();
Logger.debug(`uiDisplay.displayItems() completed`);
} else {
Logger.error("UI display not available for display update");
}
Expand Down
2 changes: 1 addition & 1 deletion yarr@jtoberling/files/yarr@jtoberling/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"max-instances": "1",
"description": "Yet Another RSS Reader",
"name": "Yet Another RSS Reader",
"version": "2.1.0",
"version": "2.1.1",
"uuid": "yarr@jtoberling",
"multiversion": true,
"author": "jtoberling",
Expand Down