Bug 572598 - Reset perspective destroys toolbar of shared part

When a perspective is reset, all old stacks are removed. This calls
removeGui on all shared elements. Shared part disconnect from the
placeholders in the stacks to be disposed, see ElementReferenceRenderer.
However, visible toolbars remain in the stacks, therefore the toolbar
are disposed. As a result, the toolbar is no longer visible in other
placeholders.

Before the gui is removed, hideChild is called on the parent renderer.
The LazyStackRenderer should be hiding the toolbar of the active part on
this call anyhow. (And only if it is currently showing the shared part.)
Side effect of this is that the toolbar is moved to the limbo shell, and
is no longer contained in the widgets of the stack. As a result, the
toolbar is also not disposed when the stack is disposed.

Change-Id: Ic1ad9b0d035fcf8262387a00bdd987c7258df925
Signed-off-by: Rolf Theunissen <rolf.theunissen@gmail.com>
Reviewed-on: https://git.eclipse.org/r/c/platform/eclipse.platform.ui/+/179050
Tested-by: Platform Bot <platform-bot@eclipse.org>
2 files changed
tree: a803e5074ab15ebaf53f84c75c386c5f94d3bc43
  1. .mvn/
  2. bundles/
  3. examples/
  4. features/
  5. releng/
  6. tests/
  7. .gitignore
  8. CONTRIBUTING
  9. CONTRIBUTING.md
  10. LICENSE
  11. NOTICE
  12. pom.xml
  13. README.md
README.md

Contributing to Eclipse Platform UI project

Thanks for your interest in this project.

Project description:

Platform UI provides the basic building blocks for user interfaces built with Eclipse.

Some of these form the Eclipse Rich Client Platform (RCP) and can be used for arbitrary rich client applications, while others are specific to the Eclipse IDE. The Platform UI codebase is built on top of the Eclipse Standard Widget Toolkit (SWT), which is developed as an independent project.

Website: http://www.eclipse.org/platform/ui/

For more information, refer to the Platform UI wiki page.

How to contribute:

Contributions to Platform UI are most welcome. There are many ways to contribute, from entering high quality bug reports, to contributing code or documentation changes. For a complete guide, see the Platform UI - How to contribute wiki page page on the team wiki.

Test dependencies

Several test plug-ins have a dependency to the Mockito and Hamcrest libraries. Please install them from the Orbit Download page]3:

Currently the following plug-ins are required:

  • net.bytebuddy.byte-buddy
  • net.bytebuddy.byte-buddy-agent
  • org.hamcrest.core
  • org.mockito
  • org.objenesis

How to build on the command line

You need Maven 3.3.1 installed. After this you can run the build via the following command:

mvn clean verify -Pbuild-individual-bundles

Developer resources:

Information regarding source code management, builds, coding standards, and more.

Contributor License Agreement:

Before your contribution can be accepted by the project, you need to create and electronically sign the Eclipse Foundation Contributor License Agreement (CLA).

Search for bugs:

This project uses Bugzilla to track ongoing development and issues.

Create a new bug:

Be sure to search for existing bugs before you create another one. Remember that contributions are always welcome!

Contact:

Contact the project developers via the project's “dev” list.

License

Eclipse Public License (EPL) 2.0