Skip to content

Commit 1e1c76f

Browse files
committed
Dropping a file onto the top of an image wasn't possible on a lab
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 1e1c76f

File tree

2 files changed

+8
-4
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

+8
-4
lines changed

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

Lines changed: 6 additions & 2 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;
@@ -158,6 +160,7 @@ public class StackRenderer extends LazyStackRenderer {
158160
*/
159161
private static final String TAB_FONT_KEY = "org.eclipse.ui.workbench.TAB_TEXT_FONT"; //$NON-NLS-1$
160162

163+
161164
@Inject
162165
@Preference(nodePath = "org.eclipse.e4.ui.workbench.renderers.swt")
163166
private IEclipsePreferences preferences;
@@ -719,9 +722,11 @@ public Object createWidget(MUIElement element, Object parent) {
719722
if (PartStackUtil.isEditorStack(element)) {
720723
createOnboardingControls(tabFolder);
721724
initializeOnboardingInformationInEditorStack(tabFolder);
725+
Label dropLabel = new Label(tabFolder, SWT.NONE);
726+
int drop = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
727+
new DropTarget(dropLabel, drop);
722728
}
723729
tabFolder.setMRUVisible(getMRUValue());
724-
725730
// Adjust the minimum chars based on the location
726731
if (isInSharedArea) {
727732
tabFolder.setMinimumCharacters(MIN_EDITOR_CHARS);
@@ -735,7 +740,6 @@ public Object createWidget(MUIElement element, Object parent) {
735740

736741
// Add a composite to manage the view's TB and Menu
737742
addTopRight(tabFolder);
738-
739743
return tabFolder;
740744
}
741745

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)