| Summary: | Opening a new window destroys/blocks tab dragging in first window | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | thomas menzel <dev.tom.menzel> | ||||
| Component: | UI | Assignee: | Andrey Loskutov <loskutov> | ||||
| Status: | VERIFIED FIXED | QA Contact: | |||||
| Severity: | major | ||||||
| Priority: | P3 | CC: | 214535763, daniel_megert, loskutov | ||||
| Version: | 4.7 | ||||||
| Target Milestone: | 4.11 RC1 | ||||||
| Hardware: | All | ||||||
| OS: | All | ||||||
| See Also: |
https://bugs.eclipse.org/bugs/show_bug.cgi?id=498510 https://git.eclipse.org/r/137491 https://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?id=af1739f0a419f059708841f6526b19d89e01bd59 |
||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
|
Description
thomas menzel
Version: Oxygen.2 (4.7.2) Build id: M20171130-0510 started in debug as org.eclipse.platform.ide the behavior is worse: - the De-maximizing doesnt help but on left display it works - for some views u dont even get the feedback that dragging started Is there anything in the .log? nope - at last nothing related: !SESSION 2018-03-14 22:54:31.512 ----------------------------------------------- eclipse.buildId=4.7.2.M20171130-0510 java.version=1.8.0_91 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US Framework arguments: -product org.eclipse.platform.ide Command-line arguments: ... !ENTRY org.eclipse.egit.ui 2 0 2018-03-14 22:54:39.237 !MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git ... !ENTRY org.eclipse.core.net 4 0 2018-03-14 22:54:39.479 !MESSAGE WinHttp.DetectAutoProxyConfigUrl for wpad failed with error 'The Proxy Auto-configuration URL was not found. ' #12180. !ENTRY org.eclipse.ui 4 4 2018-03-15 21:43:43.610 !MESSAGE Referenced part does not exist yet: org.eclipse.jdt.ui.PackageExplorer. can u point me into a direction where to look ? so far i have not much experience with eclipse RCP but my guess is it must be with the code that handles the DnD of the views/parts. can u tell me where this is located in the code base? another option is that this lies deeper somewhere in the SWT stuff. any pointers there? who else can i ask? should i rather bring these questions to some forum? i'm asking since i'd like to see this fixed ASAP, i'd like to contribute to this great IDE and have a bit of time left till the 4th april when my new project starts. (In reply to tmenzel from comment #4) > can u point me into a direction where to look ? > so far i have not much experience with eclipse RCP but my guess is it must > be with the code that handles the DnD of the views/parts. > > can u tell me where this is located in the code base? You could start with org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.startDrag() FYI 2018-09/4.9 still has the problem giving it another shot, see - https://bitbucket.org/account/user/tomsit-incubator/projects/EVP - https://bitbucket.org/tomsit-incubator/rcp-demo/src/master/ ok, found the problem: display.getCursorControl(); was replaced in 4.7 with DragAndDropUtil.findControl() which is not working IMO for >1 windows/shells. for a more elaborate analysis see the readme in https://bitbucket.org/tomsit-incubator/eclipse.platform.ui what next: since i'm not that firm on why the code change was introduced (move a way from platform specific code?) and how it is done right, i can only hope that one of u can address the problem. *** Bug 544520 has been marked as a duplicate of this bug. *** From bug 544520 comment 9: Here's a simple test case: 1. Start new workspace 2. Close Welcome page 3. Window > New Window 4. Go back to first window 5. Try to drag the Javadoc view tab ==> Does not work, drag is blocked! This applies to all tabs in all stacks. NOTE: Even a restart does not fix the problem! Regression is from bug 498510. (In reply to Andrey Loskutov from comment #10) > From bug 544520 comment 9: > > Here's a simple test case: > 1. Start new workspace > 2. Close Welcome page > 3. Window > New Window > 4. Go back to first window > 5. Try to drag the Javadoc view tab > ==> Does not work, drag is blocked! Note: this works only if the windows overlap (both maximized). Basically, DnD in first window does not work at all coordinates, which would also match widgets from the second window. For not overlapped widgets DnD still works. (In reply to Andrey Loskutov from comment #12) > > Here's a simple test case: > > 1. Start new workspace > > 2. Close Welcome page > > 3. Window > New Window > > 4. Go back to first window > > 5. Try to drag the Javadoc view tab > > ==> Does not work, drag is blocked! > > Note: this works only if the windows overlap (both maximized). Basically, > DnD in first window does not work at all coordinates, which would also match > widgets from the second window. For not overlapped widgets DnD still works. Good finding! Hover, it is not necessary that the windows are maximized. DnD is just blocked in the first window where the tab is overlapped (in the background) by the second one. (In reply to Andrey Loskutov from comment #12) > Regression is from bug 498510. > > (In reply to Andrey Loskutov from comment #10) > > From bug 544520 comment 9: > > > > Here's a simple test case: > > 1. Start new workspace > > 2. Close Welcome page > > 3. Window > New Window > > 4. Go back to first window > > 5. Try to drag the Javadoc view tab > > ==> Does not work, drag is blocked! > > Note: this works only if the windows overlap (both maximized). Basically, > DnD in first window does not work at all coordinates, which would also match > widgets from the second window. For not overlapped widgets DnD still works. Thanks to Tom's analysis in https://bitbucket.org/tomsit-incubator/eclipse.platform.ui/commits/872e2356f5d3e0c60762d6a7e127bd90c92df397 it is also easy to provide a fix: the search should start with the active (topmost) shell. (In reply to Andrey Loskutov from comment #14) > (In reply to Andrey Loskutov from comment #12) > > Regression is from bug 498510. > > > > (In reply to Andrey Loskutov from comment #10) > > > From bug 544520 comment 9: > > > > > > Here's a simple test case: > > > 1. Start new workspace > > > 2. Close Welcome page > > > 3. Window > New Window > > > 4. Go back to first window > > > 5. Try to drag the Javadoc view tab > > > ==> Does not work, drag is blocked! > > > > Note: this works only if the windows overlap (both maximized). Basically, > > DnD in first window does not work at all coordinates, which would also match > > widgets from the second window. For not overlapped widgets DnD still works. > > Thanks to Tom's analysis in > https://bitbucket.org/tomsit-incubator/eclipse.platform.ui/commits/872e2356f5d3e0c60762d6a7e127bd90c92df397 > it is also easy to provide a fix: the search should start with the active > (topmost) shell. Can you do that? (In reply to Dani Megert from comment #15) > > Thanks to Tom's analysis in > > https://bitbucket.org/tomsit-incubator/eclipse.platform.ui/commits/872e2356f5d3e0c60762d6a7e127bd90c92df397 > > it is also easy to provide a fix: the search should start with the active > > (topmost) shell. > Can you do that? I'm on it. New Gerrit change created: https://git.eclipse.org/r/137491 Gerrit change https://git.eclipse.org/r/137491 was merged to [master]. Commit: http://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?id=af1739f0a419f059708841f6526b19d89e01bd59 Thanks Andrey! (In reply to Dani Megert from comment #19) > Thanks Andrey! Thanks to Tom. He found the root cause. Verified in eclipse-SDK-I20190224-1800-win32-x86_64. Created attachment 281368 [details]
shallow eclipse git repo with the analysis
attached the repos with my analysis b/c i'm cleaning up my private repos
|