Skip to content

Commit db1d95f

Browse files
committed
Enable drop operation in Label in workbench
Dropping a file onto the top of an image wasn't possible on a label containing an imageView. The issue was previously fixed via eclipse-platform/eclipse.platform.swt#649. However, in the workbench image, dropping was yet to be configured.The issue is now resolved by calling a DropTarget on the shell obtained from the active IWorkbenchWindow. Fixes :eclipse-platform/eclipse.platform.swt#649
1 parent 634e5f0 commit db1d95f

File tree

2 files changed

+7
-2
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

+7
-2
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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,9 @@ public Object createWidget(MUIElement element, Object parent) {
719721
if (PartStackUtil.isEditorStack(element)) {
720722
createOnboardingControls(tabFolder);
721723
initializeOnboardingInformationInEditorStack(tabFolder);
724+
Label dropLabel = new Label(tabFolder, SWT.NONE);
725+
int drop = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
726+
new DropTarget(dropLabel, drop);
722727
}
723728
tabFolder.setMRUVisible(getMRUValue());
724729

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)