From 1f047b488c75db56631b7bc29e60d26d788e404a Mon Sep 17 00:00:00 2001 From: sougandhs Date: Mon, 12 Jan 2026 12:19:58 +0530 Subject: [PATCH 1/2] Synchronize Console view icon with selected console The Console view icon now reflects the currently selected console. This helps users quickly identify different consoles when multiple consoles are present, without having to inspect each one. --- .../ui/internal/console/ConsoleView.java | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/debug/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java b/debug/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java index 145fcd3d5ea..e8bec7436c9 100644 --- a/debug/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java +++ b/debug/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2018 IBM Corporation and others. + * Copyright (c) 2000, 2026 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -29,12 +29,15 @@ import org.eclipse.jface.action.Separator; import org.eclipse.jface.action.ToolBarManager; import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.resource.JFaceResources; +import org.eclipse.jface.resource.LocalResourceManager; import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.jface.viewers.IBasicPropertyConstants; import org.eclipse.swt.custom.StyledText; import org.eclipse.swt.events.MouseAdapter; import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; @@ -123,6 +126,9 @@ public class ConsoleView extends PageBookView implements IConsoleView, IConsoleL private boolean fScrollLock; private boolean fWordWrap; + private Image currentIcon, defaultIcon; + private LocalResourceManager localResManager; + private boolean isAvailable() { return getPageBook() != null && !getPageBook().isDisposed(); } @@ -184,6 +190,7 @@ protected void showPageRec(PageRec pageRec) { } updateTitle(); updateHelp(); + updateIcon(); // update console actions if (fPinAction != null) { fPinAction.update(); @@ -269,6 +276,30 @@ protected void updateHelp() { PlatformUI.getWorkbench().getHelpSystem().setHelp(getPageBook().getParent(), helpContextId); } + protected void updateIcon() { + IConsole console = getConsole(); + if (console == null) { + return; + } + Image newImage = null; + + if (console != null) { + ImageDescriptor desc = console.getImageDescriptor(); + if (desc != null) { + newImage = localResManager.create(desc); + } + } + + if (newImage == null) { + newImage = defaultIcon; + } + + if (!newImage.equals(currentIcon)) { + currentIcon = newImage; + setTitleImage(currentIcon); + } + } + @Override protected void doDestroyPage(IWorkbenchPart part, PageRec pageRecord) { IConsole console = fPartToConsole.get(part); @@ -376,6 +407,10 @@ public void dispose() { fOpenConsoleAction.dispose(); fOpenConsoleAction = null; } + if (localResManager != null) { + localResManager.dispose(); + localResManager = null; + } } /** @@ -575,6 +610,9 @@ public void createPartControl(Composite parent) { PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IConsoleHelpContextIds.CONSOLE_VIEW); getViewSite().getPage().addPartListener((IPartListener2)this); initPageSwitcher(); + localResManager = new LocalResourceManager(JFaceResources.getResources(), parent); + defaultIcon = ConsolePluginImages.getImage(IConsoleConstants.IMG_VIEW_CONSOLE); + currentIcon = defaultIcon; } /** From 659e494f5f5805e43f77bcdc56abde61056db37a Mon Sep 17 00:00:00 2001 From: Andrey Loskutov Date: Wed, 14 Jan 2026 11:22:57 +0100 Subject: [PATCH 2/2] Check and restore default console icon if last page is closed See https://github.com/eclipse-platform/eclipse.platform/pull/2418 --- .../ui/internal/console/ConsoleView.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/debug/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java b/debug/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java index e8bec7436c9..0a72b57436e 100644 --- a/debug/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java +++ b/debug/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java @@ -279,18 +279,19 @@ protected void updateHelp() { protected void updateIcon() { IConsole console = getConsole(); if (console == null) { - return; - } - Image newImage = null; - - if (console != null) { - ImageDescriptor desc = console.getImageDescriptor(); - if (desc != null) { - newImage = localResManager.create(desc); + // Check and restore default console icon if last page is closed + if (currentIcon != defaultIcon) { + currentIcon = defaultIcon; + setTitleImage(currentIcon); } + return; } + Image newImage; - if (newImage == null) { + ImageDescriptor desc = console.getImageDescriptor(); + if (desc != null) { + newImage = localResManager.create(desc); + } else { newImage = defaultIcon; }