Skip to content

Commit 392461d

Browse files
committed
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.
1 parent c905608 commit 392461d

2 files changed

Lines changed: 39 additions & 1 deletion

File tree

debug/.project

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>debug</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
</buildSpec>
9+
<natures>
10+
</natures>
11+
</projectDescription>

debug/org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2000, 2018 IBM Corporation and others.
2+
* Copyright (c) 2000, 2026 IBM Corporation and others.
33
*
44
* This program and the accompanying materials
55
* are made available under the terms of the Eclipse Public License 2.0
@@ -35,6 +35,7 @@
3535
import org.eclipse.swt.custom.StyledText;
3636
import org.eclipse.swt.events.MouseAdapter;
3737
import org.eclipse.swt.events.MouseEvent;
38+
import org.eclipse.swt.graphics.Image;
3839
import org.eclipse.swt.graphics.Point;
3940
import org.eclipse.swt.widgets.Composite;
4041
import org.eclipse.swt.widgets.Control;
@@ -123,6 +124,8 @@ public class ConsoleView extends PageBookView implements IConsoleView, IConsoleL
123124
private boolean fScrollLock;
124125
private boolean fWordWrap;
125126

127+
private Image currentIcon;
128+
126129
private boolean isAvailable() {
127130
return getPageBook() != null && !getPageBook().isDisposed();
128131
}
@@ -184,6 +187,7 @@ protected void showPageRec(PageRec pageRec) {
184187
}
185188
updateTitle();
186189
updateHelp();
190+
updateIcon();
187191
// update console actions
188192
if (fPinAction != null) {
189193
fPinAction.update();
@@ -269,6 +273,29 @@ protected void updateHelp() {
269273
PlatformUI.getWorkbench().getHelpSystem().setHelp(getPageBook().getParent(), helpContextId);
270274
}
271275

276+
protected void updateIcon() {
277+
IConsole console = getConsole();
278+
if (console == null) {
279+
return;
280+
}
281+
282+
Image newImage = null;
283+
ImageDescriptor imageDesc = console.getImageDescriptor();
284+
if (imageDesc != null) {
285+
newImage = imageDesc.createImage();
286+
} else {
287+
newImage = ConsolePluginImages.getImage(IConsoleConstants.IMG_VIEW_CONSOLE);
288+
}
289+
if (newImage != null && !newImage.equals(currentIcon)) {
290+
if (currentIcon != null && !currentIcon.isDisposed()
291+
&& currentIcon != ConsolePluginImages.getImage(IConsoleConstants.IMG_VIEW_CONSOLE)) {
292+
currentIcon.dispose();
293+
}
294+
currentIcon = newImage;
295+
setTitleImage(currentIcon);
296+
}
297+
}
298+
272299
@Override
273300
protected void doDestroyPage(IWorkbenchPart part, PageRec pageRecord) {
274301
IConsole console = fPartToConsole.get(part);

0 commit comments

Comments
 (0)