diff --git a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQChatWebview.java b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQChatWebview.java index 1ad93a98..2eeb10f3 100644 --- a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQChatWebview.java +++ b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQChatWebview.java @@ -75,7 +75,11 @@ public void completed(final ProgressEvent event) { }); } }); - + + if (!content.isPresent()) { + content = webViewAssetProvider.getContent(); + } + browser.setText(content.get()); } else { updateBrowser(browser); } @@ -113,11 +117,6 @@ public void completed(final ProgressEvent event) { } }); - if (!content.isPresent()) { - content = webViewAssetProvider.getContent(); - } - browser.setText(content.get()); - return parent; } @@ -143,6 +142,10 @@ public final void onSendToChatUi(final String message) { browser.evaluate(script); }); } + + void disposeBrowserState() { + canDisposeState = true; + } @Override public final void dispose() { diff --git a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQViewContainer.java b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQViewContainer.java index 190d7d89..398dcbf8 100644 --- a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQViewContainer.java +++ b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQViewContainer.java @@ -76,6 +76,9 @@ private void updateChildView() { BaseAmazonQView newView = views.get(activeViewType); if (currentView != null) { + if (currentView.getClass() == AmazonQChatWebview.class) { + ((AmazonQChatWebview) currentView).disposeBrowserState(); + } Control[] children = parentComposite.getChildren(); for (Control child : children) { if (child != null && !child.isDisposed()) {