Skip to content

Commit a9b8d9a

Browse files
committed
Enable file drop on workbench image label
File drop was not working on image labels in the workbench. This patch sets additional DropTarget on the tabFolder via composite label. Fixes :eclipse-platform/eclipse.platform.swt#649
1 parent e7fe50c commit a9b8d9a

File tree

2 files changed

+10
-3
lines changed
  • bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt
  • tests/org.eclipse.e4.ui.tests/src/org/eclipse/e4/ui/workbench/renderers/swt

2 files changed

+10
-3
lines changed

bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/StackRenderer.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2008, 2020 IBM Corporation and others.
2+
* Copyright (c) 2008, 2025 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
@@ -87,6 +87,8 @@
8787
import org.eclipse.swt.custom.CTabFolder2Listener;
8888
import org.eclipse.swt.custom.CTabFolderEvent;
8989
import org.eclipse.swt.custom.CTabItem;
90+
import org.eclipse.swt.dnd.DND;
91+
import org.eclipse.swt.dnd.DropTarget;
9092
import org.eclipse.swt.events.ControlEvent;
9193
import org.eclipse.swt.events.ControlListener;
9294
import org.eclipse.swt.events.MouseAdapter;
@@ -719,6 +721,11 @@ public Object createWidget(MUIElement element, Object parent) {
719721
if (PartStackUtil.isEditorStack(element)) {
720722
createOnboardingControls(tabFolder);
721723
initializeOnboardingInformationInEditorStack(tabFolder);
724+
int drop = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
725+
// Bug: eclipse-platform/eclipse.platform.swt/issues/649
726+
Composite dropZone = new Composite(tabFolder, SWT.NONE);// additional Composite/child to support dropping
727+
new Label(dropZone, SWT.NONE);
728+
new DropTarget(dropZone, drop);
722729
}
723730
tabFolder.setMRUVisible(getMRUValue());
724731

tests/org.eclipse.e4.ui.tests/src/org/eclipse/e4/ui/workbench/renderers/swt/StackRendererTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -417,7 +417,7 @@ public void testOnboardingRenderedWithCorrectSizeForEditorStack() {
417417
Composite uiContainer = (Composite) ((StackRenderer) partStack.getRenderer()).getUIContainer(partStack);
418418
CTabFolder tabFolder = (CTabFolder) ((Composite) uiContainer.getChildren()[0]).getChildren()[0];
419419
assertNotNull(tabFolder.getChildren());
420-
assertEquals(3, tabFolder.getChildren().length);
420+
assertEquals(4, tabFolder.getChildren().length);
421421

422422
Composite outerOnboardingComposite = (Composite) tabFolder.getChildren()[2];
423423
Rectangle expected = new Rectangle(StackRenderer.ONBOARDING_SPACING, StackRenderer.ONBOARDING_TOP_SPACING,
@@ -526,7 +526,7 @@ public void testOnboardingIsHiddenWhenEditorOpened() {
526526
Composite uiContainer = (Composite) ((StackRenderer) partStack.getRenderer()).getUIContainer(partStack);
527527
CTabFolder tabFolder = (CTabFolder) ((Composite) uiContainer.getChildren()[0]).getChildren()[0];
528528
assertNotNull(tabFolder.getChildren());
529-
assertEquals(3, tabFolder.getChildren().length);
529+
assertEquals(4, tabFolder.getChildren().length);
530530

531531
Composite outerOnboardingComposite = (Composite) tabFolder.getChildren()[2];
532532
Rectangle expected = new Rectangle(StackRenderer.ONBOARDING_SPACING, StackRenderer.ONBOARDING_TOP_SPACING,

0 commit comments

Comments
 (0)