Bug 1232092 - Dragging tabs does not work
Summary: Dragging tabs does not work
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Fedora
Classification: Fedora
Component: eclipse
Version: 24
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Lev Ufimtsev
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-06-16 04:21 UTC by Bill Chatfield
Modified: 2016-09-09 14:50 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-09-09 14:49:16 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Correct functioning of tab drag & drop with non-Fedora Eclipse (740.90 KB, application/octet-stream)
2015-10-29 04:41 UTC, Bill Chatfield
no flags Details
Failure of tab drag & drop with Fedora Eclipse (286.43 KB, application/octet-stream)
2015-10-29 04:46 UTC, Bill Chatfield
no flags Details

Description Bill Chatfield 2015-06-16 04:21:59 UTC
Description of problem:

If I grab the "Outline" tab on the far right of the window and try to drag it into another view in the window, the mouse cursor turns to the standard X Window System "X" cursor and does not allow me to drop that tab into another view.

Sometimes the rectangular outline and the correct mouse cursor appears and allows you to drop the tab, but most of the time it does not. You just see the X cursor instead. I have run this inside Wine with the Windows version of Java and Eclipse. It works correctly in Wine.

Version-Release number of selected component (if applicable):

All components (Eclipse 4.2.2, Java 1.8.0) are the default versions that are provided with Fedora 22, updated to the latest available with dnf.


How reproducible:


Steps to Reproduce:
1. Run Eclipse
2. Grab a tab with the mouse
3. Try to drop it into another view

Actual results:

You get an X mouse cursor and you can't drop it wherever you want to. Some, very sparse locations allow you to drop it, but they aren't necessarily where you want to drop it. The rectangular outline that shows where the tab will be attached when it is dropped is not drawn at all or is not drawn consistently.


Expected results:

The tab can be dropped into any view/location in the Window. The rectangular outline is drawn to show where the tab will be attached when you drop it.

Additional info:

This may require a video of the incorrect behavior on Fedora vs the correct behavior in Windows.

CentOS 7 and Debian 8 are showing the same broken behavior that Fedora is so it is something common to all of these: Eclipse, Java, SWT, Gnome, etc. I'm reporting it here because Fedora is my best hope to get it fixed :-) Thanks.

Comment 1 Alexander Kurtakov 2015-06-16 06:51:18 UTC
This is a known problem fixed in 4.3 which I hope we will be able to deliver as update to Fedora 22.

Comment 2 Bill Chatfield 2015-06-16 14:45:36 UTC
That is great to hear! :-) Thank you.

Comment 3 Bill Chatfield 2015-06-17 23:43:28 UTC
Looks like I miss stated the version number. Sorry for the misinformation. The current Fedora 22 version of Eclipse is 4.4.2-6. That is the version this bug is in. So, given that, are we still expecting a fix for this? I also tried 4.5 from eclipse.org and it also has this bug.

Comment 4 Bill Chatfield 2015-06-19 03:32:23 UTC
Eclipse 3.4.2 does not have this bug. It works perfectly in terms of dragging tabs. I'm going to test some more versions to try to narrow down when the bug appeared. That might also provide some clues as to whether it is an Eclipse bug or an SWT/GTK bug.

Comment 5 Alexander Kurtakov 2015-06-19 06:34:08 UTC
Bill, 
The bug/patch I think that fixes such issues https://bugs.eclipse.org/bugs/show_bug.cgi?id=457476 . It hasn't landed in eclipse.org as the patch came in during the freeze and was considered too risky to land in RC phase. I'll push it as soon as devel opens again - aka end of month. At that point there should be nightlby builds from eclipse.org with the patch and our plan is to push the patch to fedora together with the rebase to 4.5 as the patch will be useless alone as it relies on previous changes done in 4.5 stream thus trying to backport it will slowdown pushing 4.5 as update. Hope that helps.
P.S. The patch will land in rawhide with the next rebuild so you can try in Rawhide VM.

Comment 6 Bill Chatfield 2015-06-19 18:44:45 UTC
Cool. Thanks so much for the explanation.

Comment 7 Alexander Kurtakov 2015-09-04 12:02:47 UTC
This should be fixed now that F22 get an update to Mars. Please verify.

Comment 8 Bill Chatfield 2015-09-22 15:46:22 UTC
Unfortunately, it is not fixed. I still see the same behavior with Mars.

Comment 9 Bill Chatfield 2015-10-25 05:17:42 UTC
This appears to be fixed in Mars.1 (4.5.1). Fedora 22 has 4.5.0 currently. So the next update should fix it.

Comment 10 Mat Booth 2015-10-27 09:41:57 UTC
Hi Bill,

Fedora 22 should now have Mars.1, can you verify if this fixes your problem?

Comment 11 Bill Chatfield 2015-10-28 03:54:45 UTC
I upgraded all my Fedora packages to the latest versions, including eclipse. Surprisingly it did not solve the problem. I'm thinking maybe it has to do with a plugin I have installed. I tried starting with a clean .eclipse and workspace. That didn't help. I will try uninstalling the plugins that I have in the Fedora eclipse that I don't have in the non-Fedora eclipse that works. Tomorrow.

I have C/C++, EPIC Perl, PyDev, FedoraPackaging with the Fedora eclipse.

Comment 12 Bill Chatfield 2015-10-28 04:23:13 UTC
I removed all eclipse* packages. Then I just installed eclipse-jdt plus its dependencies. I wiped out .eclipse, .swt and workspace. But, the problem is still there.

Comment 13 Sopot Cela 2015-10-28 08:40:06 UTC
Anything interesting in the log? (CTRL+3 and type error log)

I read your initial description but it seems that sometimes you can't and sometimes (or somewhere) you can drop. But just to make sure, the drag always 'starts', right? You just can't drop it in the usual locations.

Comment 14 Bill Chatfield 2015-10-28 12:14:15 UTC
I tested it with a brand new user account. The drag starts but it is hard to tell because the mouse never changes from an arrow to a hand. I can tell because the tab gets underlined. If I wait for about 15 seconds, it starts very slowly drawing borders to show where the drop locations are. Every time I move the mouse to another location, I have to wait for it to draw the borders to show where I can drop the tab. Sometimes it draws the borders, sometimes it does not. In contrast, the Mars.1 from eclipse.org does this very fast and it works every time on the same machine.

In my normal user account, I can tell that the drag starts because the cursor changes from an arrow to a hand, but as soon as I move it off the tab, it changes to an X. I get no borders drawn for the drop locations and the cursor stays an X the whole time I move it around.

I suppose a video would be helpful here. I'll see if I can do that. 

Ctrl+3 "error log" doesn't find the error log. I pulled it from ~/workspace/.metadata/.log. It has nothing useful:

!SESSION 2015-10-28 07:51:45.010 -----------------------------------------------
eclipse.buildId=4.5.1.v20151013-1700
java.version=1.8.0_60
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Command-line arguments:  -os linux -ws gtk -arch x86_64

!ENTRY org.eclipse.equinox.p2.publisher.eclipse 4 0 2015-10-28 07:51:50.357
!MESSAGE Unable to acquire PluginConverter service during generation for: /usr/l
ib64/eclipse/dropins/cvs.

!ENTRY org.eclipse.equinox.p2.publisher.eclipse 4 0 2015-10-28 07:51:50.735
!MESSAGE Unable to acquire PluginConverter service during generation for: /usr/l
ib64/eclipse/dropins/jdt.

!ENTRY org.eclipse.equinox.p2.publisher.eclipse 4 0 2015-10-28 07:51:51.136
!MESSAGE Unable to acquire PluginConverter service during generation for: /usr/l
ib64/eclipse/dropins/sdk.

Comment 15 Bill Chatfield 2015-10-29 04:41:46 UTC
Created attachment 1087366 [details]
Correct functioning of tab drag & drop with non-Fedora Eclipse

As I drag the tab and move the mouse around the window you can see that Eclipse is drawing borders around the areas where I can drop the tab and showing me how it will look if I drop it there.

Comment 16 Bill Chatfield 2015-10-29 04:46:00 UTC
Created attachment 1087367 [details]
Failure of tab drag & drop with Fedora Eclipse

As I move the mouse around the window, dragging the tab, no borders are drawn to show me where I can drop the tab and what it will look like. In fact nothing really happens at all, no feedback and dropping the tab does not work.

Comment 17 Bill Chatfield 2015-10-29 04:54:30 UTC
The first attachment shows the non-Fedora Eclipse Mars.1 working correctly immediately after the install, after I launch it from the install program. If close it (Eclipse) and restart it, it fails in the same way as the Fedora Eclipse. Maybe the install program is loading some different SWT library? I don't know what the difference might be.

Comment 18 Roland Grunberg 2015-10-29 18:03:35 UTC
On F22 with Fedora Eclipse Mars.1 , I can't reproduce that behaviour. I clearly see grey outlines showing me how the tab can be rendered depending on the location of my mouse.

Can you confirm you're using 'eclipse-platform-4.5.1-2' ? I think it's strange that it works with upstream but not Fedora's. That would seem to point to a patch or plugin causing this.

I'm not saying the mentioned bug isn't occuring, but there's something else going on.

Comment 19 Daine Wright 2015-11-09 21:00:37 UTC
I am experiencing this bug.
I cannot drag editor tabs to reorder them or rearrange the editor panes.

Fedora 22
Eclipse Mars.1 (4.5.1)
I can provide any other info that will be helpful.

Here is the error message from the Error Log immediately after the drag and drop fails:
java.lang.NullPointerException
	at org.eclipse.e4.ui.workbench.addons.dndaddon.DetachedDropAgent.drop(DetachedDropAgent.java:60)
	at org.eclipse.e4.ui.workbench.addons.dndaddon.DragAgent.dragFinished(DragAgent.java:159)
	at org.eclipse.e4.ui.workbench.addons.dndaddon.PartDragAgent.dragFinished(PartDragAgent.java:93)
	at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.finishDrag(DnDManager.java:276)
	at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.startDrag(DnDManager.java:243)
	at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager$1.dragDetected(DnDManager.java:87)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:127)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4481)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1329)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3819)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3430)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1127)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:654)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:598)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1515)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1488)

Comment 20 Sopot Cela 2015-11-10 10:57:36 UTC
(In reply to Daine Wright from comment #19)
> I am experiencing this bug.
> I cannot drag editor tabs to reorder them or rearrange the editor panes.
> 
> Fedora 22
> Eclipse Mars.1 (4.5.1)
> I can provide any other info that will be helpful.
> 
> Here is the error message from the Error Log immediately after the drag and
> drop fails:
> java.lang.NullPointerException
> 	at
> org.eclipse.e4.ui.workbench.addons.dndaddon.DetachedDropAgent.
> drop(DetachedDropAgent.java:60)
> 	at
> org.eclipse.e4.ui.workbench.addons.dndaddon.DragAgent.dragFinished(DragAgent.
> java:159)
> 	at
> org.eclipse.e4.ui.workbench.addons.dndaddon.PartDragAgent.
> dragFinished(PartDragAgent.java:93)
> 	at
> org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.finishDrag(DnDManager.
> java:276)
> 	at
> org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.startDrag(DnDManager.
> java:243)
> 	at
> org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager$1.
> dragDetected(DnDManager.java:87)
> 	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:127)
> 	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
> 	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4481)
> 	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1329)
> 	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3819)
> 	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3430)
> 	at
> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.
> run(PartRenderingEngine.java:1127)
> 	at
> org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
> 	at
> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.
> run(PartRenderingEngine.java:1018)
> 	at
> org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.
> java:156)
> 	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:654)
> 	at
> org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
> 	at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:598)
> 	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
> 	at
> org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.
> java:139)
> 	at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:
> 196)
> 	at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.
> runApplication(EclipseAppLauncher.java:134)
> 	at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.
> start(EclipseAppLauncher.java:104)
> 	at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
> 	at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.
> java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:497)
> 	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)
> 	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
> 	at org.eclipse.equinox.launcher.Main.run(Main.java:1515)
> 	at org.eclipse.equinox.launcher.Main.main(Main.java:1488)

From the stack trace it looks like it's happening when you drop it as the NPE is in the drop code of the agent. Are you using upstream eclipse (downloaded from eclipse.org) ?

Comment 21 Daine Wright 2015-11-10 16:56:14 UTC
Eclipse is install through gnome-software-3.16.5.

I use one Eclipse installation for a lot of things, so I have a lot of plug-ins.
Java Development Tools, PDT, EPIC, PyDev, RSE, Subversive, eGit
If you need a list, let me know the best place to get a concise and complete one.

Comment 22 Bill Chatfield 2015-11-10 20:57:43 UTC
My tests which reproduce the problem were done with plugins and without. I did a clean install by removing all eclipse* packages and then installing eclipse-jdt with dependencies. The presence or absence of plugins seems to be irrelevant for me. 

sudo dnf remove eclipse*

# Be sure you know what you're doing before doing this:
mv ~/.eclipse ~/.eclipse.bak
mv ~/workspace ~/workspace.bak

sudo dnf install eclipse-jdt

Comment 23 Sopot Cela 2015-11-11 10:42:30 UTC
Related to https://bugs.eclipse.org/bugs/show_bug.cgi?id=447325

I've tried all the hints in that bug (and this) to reproduce but I can't. Will investigate.

Comment 24 Bill Chatfield 2015-11-11 14:54:05 UTC
There must be some difference between your setup, where it works, and my setup, where it doesn't work. I have 2 laptops where I see the same behavior, so that led me to believe that the problem would happen in all cases. Since we're both using Fedora, the software has to be the same, except for the video driver. I have an Intel video card in one laptop and an Nvidia card in the other. I can provide more details when I get home.

Comment 25 Alexander Kurtakov 2016-03-06 09:07:20 UTC
Is this still an issue?

Comment 26 Fedora End Of Life 2016-07-19 19:11:52 UTC
Fedora 22 changed to end-of-life (EOL) status on 2016-07-19. Fedora 22 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.

Comment 27 Mohammad Alhashash 2016-08-19 07:26:55 UTC
I have the same problem on Fedora 24 using both the official Eclipse package and the latest package from eclipse.org. 

I also tried new profile, Oracle Java and GTKv2.

I do not have the privilege to reopen the bug.

Comment 28 Bill Chatfield 2016-08-19 14:56:51 UTC
I'm reopening for Fedora 24 because some people are still experiencing it there. The behavior has changed for me somewhat. I still don't see the outlines being drawn but I'm able to move the tabs around successfully (blindly). Since some people experience the bug and some people don't, I think that points to the problem being in a component that would be different like the video driver. Any ideas how one would go about verifying that possibility?

Comment 29 Mohammad Alhashash 2016-08-19 18:04:36 UTC
Some times I can blindly reorder tabs, but most of the time it does not work and I cannot move tabs to other groups. 

Some times, another tab moves (not the selected one)!

Comment 30 Mohammad Alhashash 2016-08-21 08:38:34 UTC
When using GTK2 (with environment variable SWT_GTK3=1) the situation is better. I can drag tabs but it moves another tab than the selected one! For example, If I want to move tab 5, I need to drag tab 3. To move tab 2, I need to drag tab 1. It is not possible to move tab 1. I think it is similar in GTK3 but in GTK2 I get visual feedback while dragging.

I think it could be a result of GTK HiDPI changes. I'm using Dell XPS 15 with 4k display. When I open eclipse in a VNC session, drag works properly. 

The problem persists after installing Bumblebee NVidia drivers instead of nouveau. Starting normally or with Bumblebee 'optirun' to enable nvidia has no effect. So, I do not think it is a driver issue.

Comment 31 Alexander Kurtakov 2016-08-21 08:41:44 UTC
Leo, please investigate this one as it seems to be HiDPI issue.

Comment 32 Lev Ufimtsev 2016-09-02 14:57:37 UTC
I'm investigating in:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=498217

Comment 33 Mohammad Alhashash 2016-09-08 17:46:14 UTC
I think there are two unrelated issues here. One the the missing dragging rectangle: https://bugs.eclipse.org/bugs/show_bug.cgi?id=498217 which applies to GTK3 only.

The second issue is incorrect tab selection dragging which applies to both GTK3 and GTK2 in HiDPI (When dragging tab 2 for example, tab 4 moves).

Comment 34 Lev Ufimtsev 2016-09-09 14:49:16 UTC
(In reply to Mohammad Alhashash from comment #33)
> I think there are two unrelated issues here. One the the missing dragging
> rectangle: https://bugs.eclipse.org/bugs/show_bug.cgi?id=498217 which
> applies to GTK3 only.
> 
> The second issue is incorrect tab selection dragging which applies to both
> GTK3 and GTK2 in HiDPI (When dragging tab 2 for example, tab 4 moves).

That's correct. The second one is a separate issue (see #2 below).

Both work in progress atm. 

Technically DnD of tab now works, but it's not fully functional due to tracker issues and HiDpi issues.
These are upstream issues as they occur upwards of certain gtk versions (see #1) or require implementation in upstream code rather than being red-hat specific. I'm closing the bug for now, please feel free to continue to track in the upstream bugs:

#1
Bug 498217 – [GTK3] Dragging parts does not show rectangle
https://bugs.eclipse.org/bugs/show_bug.cgi?id=498217

#2
Bug 500694 – [HiDPI] Drag and Drop not working properly on high resolution displays with scaling factor
https://bugs.eclipse.org/bugs/show_bug.cgi?id=500694

Comment 35 Lev Ufimtsev 2016-09-09 14:50:55 UTC
(In reply to Lev Ufimtsev from comment #34)
> #1
> Bug 498217 – [GTK3] Dragging parts does not show rectangle
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=498217
> 
> #2
> Bug 500694 – [HiDPI] Drag and Drop not working properly on high resolution
> displays with scaling factor
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=500694

The 'Bug xxxxxx' links to the wrong place. Use url links.
Feel free to re-open if I missed something?


Note You need to log in before you can comment on or make changes to this bug.