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
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

## [Unreleased]

- Fix intermittent stale paint when switching Settings tabs (#21) where the previous tab body stayed visible behind the new one. The `JBCefBrowser` was built with `setOffScreenRendering true`; CEF's OSR pipeline occasionally failed to invalidate the freed region when a large React subtree (e.g. `LogsTab`'s up-to-5000-entry buffer) was unmounted and a sibling mounted in the same commit, leaving prior pixels onscreen until the next paint event. Switched to heavyweight rendering.

## 0.26.14

- Fix empty Settings → MCPs tab on tool-window reopen (#22). `webview/ready` now replays the cached MCP roster as `tool/serversUpdated`, and `on-initialized` merges into `:session` instead of clobbering it (notifications that race ahead of `initialized` no longer get wiped).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,12 @@

(defn ^:private create-webview ^JBCefBrowser [^Project project url]
(let [browser (-> (JBCefBrowser/createBuilder)
(.setOffScreenRendering true) ;; TODO move to config
;; Heavyweight (native) rendering. OSR (true) intermittently fails to
;; invalidate freed regions when a large React subtree is replaced in
;; one commit (e.g. switching Settings tabs while LogsTab holds
;; thousands of entries), leaving the prior tab's pixels visible
;; behind the new one until another event triggers a repaint (#21).
(.setOffScreenRendering false)
(.build))
;; Per-client JS query pool size. We previously bumped this via a
;; global `System.setProperty "ide.browser.jcef.jsQueryPoolSize"` inside
Expand Down
Loading