Bug 546914: [GTK] Git Reflog - branch symbol on the upper right corner does not react

Adding a control to a ToolItem via setControl() has a bug on GTK3 (all versions) where
events sent to that control are no longer processed/fired. This is because SWT-GTK3
requires a few extra steps, namely fixing the Z-order (GdkWindow stacking order)
after calling setControl(). Events in GTK3 travel via GdkWindow, so the wrong
GdkWindow on top will block events from reaching the set control.

This is visible in EGit and not SWT (Snippet58) because of the way ToolBar managers
in JFace dynamically dispose/create ToolItems on the fly.

The fix is call fixZOrder() in the parent ToolBar, everytime ToolItem.setControl()
is called. Furthermore, the map signal needs to be connected on the ToolItem's
topHandle().

Tested on GTK3.24, X11 and Wayland. Verified in a child Eclipse using EGit. No
AllNonBrowser JUnit tests fail.

Change-Id: I5bc5df8feda7482aa4180ee18d4d995c6942d463
Signed-off-by: Eric Williams <ericwill@redhat.com>
1 file changed
tree: cf548676a3ff80a2fc4e2a7e37bf5524d3f34f99
  1. bundles/
  2. container/
  3. examples/
  4. features/
  5. local-build/
  6. tests/
  7. .gitignore
  8. CONTRIBUTING
  9. LICENSE
  10. NOTICE
  11. pom.xml
  12. README.md
README.md

Contributing to SWT

Thanks for your interest in this project.

Developer resources:

See the following description for how to contribute a feature or a bug fix to SWT.

Information regarding source code management, builds, coding standards, and more and be found under the following link.

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).

Contact:

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

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!